2013-10-12 2 views
0

아약스 선택 상자로 도움을 받으십시오.아약스가있는 두 개의 선택 상자

  1. 지역

  2. 도시 내가 선택한 영역을 accourding 영역을 도시 선택 박스 변화에서 옵션을 선택

:

나는 2 selectboxs 있습니다.

페이지를로드 할 때 (예 : 데이터 편집) 올바른 도시가 표시되지 않습니다 (이전에 선택한 DB 영역에 해당하는 목록의 첫 번째 도시에 선택 상자 포인터가 표시됨).).

무엇을 변경해야합니까?

감사

클라이언트 사이트 :

<p><label>Area</label> 
    <select name='areaID' id='areaID'> 
     <?PHP 
     $query = mysql_query("SELECT * FROM `areas` ORDER BY id ASC "); 
     while($index = mysql_fetch_array($query)) 
     { 
      $db_area_id = $index['id']; 
      $db_area_name = $index['name']; 
      if ($db_area_id == $userDetails['areaID']) 
       echo "<option value='$db_area_id' selected>$db_area_name</option>";   
      else  
       echo "<option value='$db_area_id'>$db_area_name</option>"; 
     } 
     ?> 
    </select><span>*</span> 
</p> 

<p><label>City</label> 
    <select id='cityID' name='cityID'> </select> 
</p> 


<script> 
$(function() { 
    function updateCitySelectBox() { 
     var areaID = $('#areaID').val(); 
     $('#cityID').load('ajax/getCities.php?areaID=' + areaID); 

     return false; 
    } 

    updateCitySelectBox(); 
    $('#areaID').change(updateCitySelectBox); 
}); 
</script> 

서버 측 :

$areaID = (int) $_GET['areaID']; 

$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; 
+1

모든 게 잘된 것 같습니다. Ajax 호출 위의'console.log (areaID)'에 의해 전달하려는 areaID의 값을 검사 해보십시오. –

+0

@OptimusPrime에 동의합니다. –

+0

@OptimusPrime - 페이지로드시 오른쪽 도시로 호출하는 부분이 누락되었습니다. – Roi

답변

0

봅니다 코드의 행 다음에 추가 할 수 있습니다. 창로드시 함수를 호출해야합니다.

$(document).ready(function(){ 
    window.load = updateCitySelectBox(); 
}); 
+0

아니요, 아무 것도 바뀌지 않습니다 ... – Roi

+0

그건 작동하지 않습니다. 이미 .ready 안에 보관하면 충분합니다. –

관련 문제