2013-08-21 5 views
0

두 번째 선택 상자의 값을 ajax로 변경하는 선택 상자를 작성하려고했습니다.아약스로 선택 상자 변경

먼저이 지역의 AREA와 도시를 선택합니다.

내가 뭘 잘못했는지 말해 줄 수 있습니까?

클라이언트 측 :

<script> 
$(function() { 

    $("#first").change(function() { 
    $("#second").load('recs.php?area_id=' + $(this).val()); 
    }); 

}); 
</script> 


<form method="post" action="tosomewhere.php"> 

    <select id="first" name="area_id"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
    </select> 

    <select id="second" name="section"> </select> 

</form> 

서버 측 :

<?PHP 

    include "db.php" 

    $areaID = $_GET['area_id']; 
    $second_option = ""; 

    $query2 = mysql_query("SELECT * FROM `cities` WHERE area_id = $areaID ORDER BY id ASC"); 
    while($index = mysql_fetch_array($query2)) 
    { 
     $id = $index['id']; 
     $name = $index['name']; 

     $second_option .= "<option value='$id'>$name</option>"; 
    } 

    echo $second_option; 

?> 

답변

0

이 시도,

$(function() { 

    $("#first").change(function() { 
    $.get('recs.php', {area_id: $(this).val()}, function(data) { 
     $("#second").html(data); 
    }); 
    }); 

}); 

참고 : echoexit을 넣어하는 것이 좋습니다.

echo $second_option; 
exit; 
+0

만약 내가 당신이라면 json 인코딩 된 배열을 PHP 측에서 반환하고 루프를 반복하여 jquery로 선택 상자에 추가하십시오. 이것은 훨씬 더 깨끗합니다. – astroanu

+0

@NikhilMohan - 감사합니다.하지만 여전히 작동하지 않습니다. 클라이언트 측에서 SCRIPT 부분이 전혀 결과를 얻지 못하는 것 같습니다. – Roi

+0

로드 메소드를 사용하지 않습니다. 어쩌면 그들은 미래 버전에서 그것을 비난 할지도 모르다. 이 답변보기 http://stackoverflow.com/questions/170986/what-is-the-best-way-to-add-options-to-a-select-from-an-array-with-jquery 데이터 보내기 json이 매우 깔끔하고 어쨌든 데이터를 얻은 후에는 jquery로 쉽게 조작 할 수 있습니다. – astroanu