【问题标题】:two select box with ajax两个带有ajax的选择框
【发布时间】:2013-10-12 16:41:35
【问题描述】:

我需要你的 ajax 选择框帮助。

我有 2 个选择框:

  1. 面积

  2. 城市

当我选择区域时,CITIES 选择框中的选项会根据我选择的区域发生变化。

它工作正常,但是当我加载页面时(例如:编辑数据)我看不到正确的城市(选择框指针站在列表中的第一个城市上,根据我之前选择的 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;

【问题讨论】:

  • 一切似乎都很好。尝试通过 ajax 调用上方的console.log(areaID) 检查您传递的 areaID 的值。
  • 我也同意@OptimusPrime。
  • @OptimusPrime - 我错过了加载页面时调用正确城市的部分......
  • @Roi 你的意思是 areaID 错了?

标签: jquery ajax


【解决方案1】:

尝试添加以下代码行。您需要在窗口加载时调用该函数。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多