2013-10-12 65 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就足够了。 –