根据数据库中的其他选定选项更新选择选项

时间:2016-12-16 02:56:28

标签: javascript php

我有一个选择地区,省份和城市的表格。省份的选择选项取决于所选区域,城市选项取决于所选省份。所有选项都来自数据库

我已经使用此代码显示该区域。

<select class="form-control" id="region" name="region">
<?php
if( isset($Region) && count($Region)>0 ){
    foreach($Region as $Region){
        echo '
                <option>'.$Region['region'].'</option>
            ';
    }
}else{
    echo '
                <option>NO RECORDS FOUND</option>
            ';
}
?>
</select>

请您帮助我下一步显示各省的选项吗?

<select class="form-control" id="province" name="province">
</select>

我相信在完成这一步后,我可以为显示城市做同样的事情。谢谢!

Database name: patrol
table name: geography
               >id
               >region
               >province
               >city

通过放置此脚本

,我尝试了同样的one
<script>
$(function() {
$(document).ready(function () {
    $('#region').change(function() {
       var select = $('#province').empty();
       $.get('script.php', {region: $(this).val()}, function(result) {
           $.each(result, function(i, item) {
               $('<option value="' + item.value + '">' + item.name + '</option>').
                   appendTo(select);
           });
       });
    });
});
});
</script>

并拥有此script.php

<?php
if (isset($_GET['region'])) {
    $sql = new mysqli('localhost','root','','patrol');
    $region = mysqli_real_escape_string($sql,$_GET['region']);
    $query = "SELECT * FROM geography WHERE region = $region";
    $ret = $sql->query($query);
    $result = array();
    while ($row = $ret->fetch_assoc()) {
         $result[] = array(
             'value' => $row['id'],
             'name' => $row['province']
         );
    }
    echo json_encode($result);
}
?>

2 个答案:

答案 0 :(得分:1)

<option>'.$Region['region'].'</option>

您未在区域选择选项中设置任何值。

应该如下:

<option value="'.$Region['region'].'">'.$Region['region'].'</option>

也可以使用console.log(结果)来查看是否收到了预期的数据。

答案 1 :(得分:0)

感谢您回答。但是,我找到了答案并且确实做了修复。我会为那些与我有相同问题的人发布剧本

%~dp0