2013-09-05 47 views
0

我有脚本显示所有城市(在选择框)关于我之前选择的areaID。ajax脚本与选择框

例如 - 这我选择areaID表示2我将在第二个选择框所有瞬移到区域城市看到2

的问题是 - 当我加载页面,要证明是前所选择的城市(来自数据库)

城市选择框中的CITY选项不是指向数据库中的cityID。

我需要改变什么?

谢谢先进。

<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['area']) 
      echo "<option value='$db_area_id' selected>$db_area_name</option>";   
     else  
      echo "<option value='$db_area_id'>$db_area_name</option>"; 
    } 
    ?> 
</select> 

<select id='cityID' name='cityID'> </select> 


<script> 

<?PHP if ($_POST) { ?> 
    $(document).ready(function(){ 
     $('#areaID').filter(function(){ 
      var areaID=$('#areaID').val(); 
      var cityID=<?PHP echo $userDetails['cityID'] ?>; 
      $('#cityID').load('ajax/getCities.php?areaID=' + areaID+'&cityID=' + cityID); 
      return false; 
     }); 
    }); 
<?PHP }else { ?> 

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

     return false; 
    } 

    updateCitySelectBox(); 
    $('#areaID').change(updateCitySelectBox); 
}); 
<?PHP } ?> 

</script> 

getCities.php:

$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']; 

    $name = iconv('windows-1255', 'UTF-8', $name); 

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

} 

echo $second_option; 
+0

你能告诉我们getCities.php –

+0

肯定: \t $ areaID表示=(INT)$ _GET [ 'areaID表示']; \t \t $ second_option =“”; \t \t $ query2 = mysql_query(“SELECT * FROM'cities' WHERE area_id = $ areaID ORDER BY id ASC”); \t while($ index = mysql_fetch_array($ query2)) \t { \t \t $ id = $ index ['id']; \t \t $ name = $ index ['name']; \t \t \t \t $ name = iconv('windows-1255','UTF-8',$ name); \t \t $ second_option。=“”; \t \t \t} \t \t回声$ SECOND_OPTION; – Roi

+0

我将它添加到主帖@LiamAllan – Roi

回答

0

尝试

的jQuery:

$(document).ready(function(){ 

     $('#areaID').on('change',function(){ 
      var SelectedAreaID = $(this).val(); 
      $.ajax({ 
       type: "POST", 
       url: "ajax/getCities.php", 
       data: { areaID: SelectedAreaID } 
       }).done(function(data) { 
        $('#cityID').html(data); 
       }); 
      return false; 
     }); 

    }); 

选择框:

<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['area']){ 
      echo "<option value='$db_area_id' selected>$db_area_name</option>";   
     } 
     else{ 
      echo "<option value='$db_area_id'>$db_area_name</option>"; 
     }   
    } 
    ?> 
</select> 

<select id='cityID' name='cityID'> </select> 

getCities.php

$areaID = $_POST['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']; 

    $name = iconv('windows-1255', 'UTF-8', $name); 

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

} 

echo $second_option; 
+0

不工作...:/ – Roi

+0

更新了我的答案。是在填充areaID的选项?它只是你遇到问题的cityID吗? –

+0

嗨Liam, 当我加载页面时,从数据库中填充的是areaID。你有没有改变“选择框”代码中的任何内容? ajax过去在LOADING页面或POST表单后仍然不显示城市选项... – Roi