Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有selectbox的ajax脚本_Php_Jquery_Ajax - Fatal编程技术网

Php 带有selectbox的ajax脚本

Php 带有selectbox的ajax脚本,php,jquery,ajax,Php,Jquery,Ajax,我有一个脚本,显示了selectbox中关于我之前选择的areaID的所有城市 例如,如果我选择了areaID 2,我将在第二个选择框中看到与area 2相关的所有城市 问题是-当我加载页面并希望显示之前从DB中选择的城市时 城市选择框中的城市选项不是DB中城市ID上的点 我需要改变什么 提前谢谢 <select name='areaID' id='areaID'> <?PHP $query = mysql_query("SELECT * FROM `areas

我有一个脚本,显示了selectbox中关于我之前选择的areaID的所有城市

例如,如果我选择了areaID 2,我将在第二个选择框中看到与area 2相关的所有城市

问题是-当我加载页面并希望显示之前从DB中选择的城市时

城市选择框中的城市选项不是DB中城市ID上的点

我需要改变什么

提前谢谢

<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;
试一试

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;

你能给我们看看getCities.phpsure:$areaID=int$\u GET['areaID'];$second_选项=;$query2=mysql\u querySELECT*从城市中选择,其中area\u id=$areaID按id排序ASC;而$index=mysql_fetch_数组$query2{$id=$index['id'];$name=$index['name'];$name=iconv'windows-1255','UTF-8',$name;$second_选项。=$name;}echo$second_选项;我把它添加到主帖子@liamallanu更新了我的答案。是否正在填充areaID中的选项?这只是城市ID你有问题吗?嗨,Liam,是的,当我加载页面时,区域ID从数据库自动填充。您是否更改了“选择框”代码中的任何内容?在加载页面或发布表单后,ajax过去仍然不显示城市选项。。。