2013-10-12 62 views
0

我需要你的幫助與阿賈克斯選擇框請。兩個選擇框與阿賈克斯

我有2個selectboxs:

  1. 區域

  2. 城市

當我選擇區域在城市中選擇框的變化選項accourding我選擇的區域。

它的工作正常,但是當我加載頁面(即ie:編輯數據)時,我沒有看到正確的城市(selectbox指針站在列表中的第一個城市,贊同我之前選擇的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就足夠了。 –