2026, 새로운 도약을 시작합니다.

select 박스 선택이 되지 않음 채택완료

안녕하세요!! 궁금한게 있어서 질문드릴려고 합니다!!

제가 ajax로 데이터를 보내서 쿼리문에 입력을 하고 

Copy


  $sql = " select '".$studentName."%' from student_class " ;

  

  $result = sql_query($sql);

  

 

  for($i=0; $row=sql_fetch_array($result); $i++){

    $selectoption[] = $row['STUDENT_NAME'];

    ?>

    

    

이런식으로 값을 불러와서 select 박스에 옵션을 넣으려고 하는데 값은 select 박스 안으로 들어오는데 옵션들을 선택해도 계속 맨 위의 값만 선택이 되고 바뀌질 않습니다!!ㅠㅠㅠㅠ

도대체 무엇이 문제인지 몰라서 이렇게 질문글 남깁니다. 고수님들 도와주세요!!

답변 3개

채택된 답변
+20 포인트

소스를 적용해서 해보려고 하는데

코드가 좀 이상하네요 

우선 하실려는 처리가

. 학생명 입력시 해당 학생명 을 포함한 결과를 가져와서 select 로 뿌려주려는 것이 맞나요 ?

위 내용이 맞다면 

. 학생이름을 넣는 입력칸이 별도로 있어야 하고 selectbox 도 별도로 있어야합니다

. 지금 코드는 selectbox 의 값을 가져와서 그걸 그대로 ajax 처리해서 option 출력하는 건데

이건 의미가 없을꺼 같고요

Copy




function calculateStudent(){

                $.ajax({

                    url : "./data_calculate.php",

                    type : "post",

                    data : {

                        studentName : $('#studentName').val()

                    },

                    success : function(res) {

                        $("#studentselect").html(res);

                    },

                    error : function(err){

                        alert(err);

                    }                                

                });                    

                }



 검색





이런식으로 하시고

Copy
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

전체 소스나 아니면 적용되어있는 주소가 있나요 ?

주소를 적어주시면 들어가서 보는게 좀더 바른 답변을 드릴수있습니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

[code]
<script>
function calculateStudent(e){

$.ajax({
url : " http://localhost/bbs/dataloader/data_calculate.php",
type : "post",
data : {
studentName : $('#studentName').val()
},
success : function(res) {
$("#"+e.id+"").html(res);
console.log(res)
},
error : function(err){
alert(err);
}
});
}
</script>

<select id="studentName" onclick="calculateStudent(this)" class="frm_input">


#data_calculate.php

<?php
include_once('./_common.php');

$studentName = $_POST['studentName'];


$sql = " select * from student_class where studentName LIKE '".$studentName."%' " ;

$result = sql_query($sql);


for($i=0; $row=sql_fetch_array($result); $i++){
$selectoption[] = trim($row['studentName']);
?>
<option value="<?php echo $selectoption[$i]?>" <?php echo ($write['studentName'] == $selectoption) ? " selected" : "";?>><?php echo $selectoption[$i]?></option>
<?php
}



[/code]
[code]
<script>
function calculateStudent(e){

$.ajax({
url : " http://localhost/bbs/dataloader/data_calculate.php",
type : "post",
data : {
studentName : $('#studentName').val()
},
success : function(res) {
$("#"+e.id+"").html(res);
console.log(res)
},
error : function(err){
alert(err);
}
});
}
</script>

<select id="studentName" onclick="calculateStudent(this)" class="frm_input">


#data_calculate.php

<?php
include_once('./_common.php');

$studentName = $_POST['studentName'];


$sql = " select * from student_class where studentName LIKE '".$studentName."%' " ;

$result = sql_query($sql);


for($i=0; $row=sql_fetch_array($result); $i++){
$selectoption[] = trim($row['studentName']);
?>
<option value="<?php echo $selectoption[$i]?>" <?php echo ($write['studentName'] == $selectoption) ? " selected" : "";?>><?php echo $selectoption[$i]?></option>
<?php
}



[/code]


이런 틀을 가지고 동작하는 거에요 아직 적용되어 있는 주소가 없어서요!!

댓글을 작성하려면 로그인이 필요합니다.

Copy


  $sql = " select '".$studentName."%' from student_class " ;

  

  $result = sql_query($sql);

  

 

  for($i=0; $row=sql_fetch_array($result); $i++){

    ?>

    

    

1. option value 안에 고유값을 넣어주세요

2. 반복문인데 [] <= 배열에 담았다 출력하실 필요없이 바로 echo 해주시면 됩니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

감사합니다!! 알려주신대로 수정은 하니깐 훨씬 코드가 깔끔해졌습니다!! 그런데 아직도 select에서 option에 값들은 나타나는데 다른 값으로 선택이 되지 않습니다...ㅠㅠ

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고