基于动态选择填充选择字段

时间:2019-10-11 03:43:16

标签: php html mysql

使用MySQL,PHP将变量从一个下拉列表传递到另一个下拉列表

我很难将变量从一个下拉字段传递到另一个下拉字段。

这是我的第一个下拉菜单。在查询数据库以显示可用状态时,确实可以正确显示。

<tr>
   <td>State</td>
   <td><select name="state" id="state"><option value=''>Select</option>
      <?php
          $sql = "SELECT * from states";
          $result = mysqli_query($db,$sql);
          if (mysqli_num_rows($result) > 0 ) {
             while($row = mysqli_fetch_object($result)) {
                echo "<option value='" . $row->state . "'>" . $row->state ."</option>";
             }
          }
       ?></select></td>
</tr>

基于第一个下拉列表中的选择,我想在第二个下拉列表中填充所选州的城市。我不知道如何将状态变量传递给第二个查询。

第二个下拉列表:

<tr>
   <td>City</td>
   <td><select name="city" id="city"><option value=''>Select</option>
      <?php
          $sql = "SELECT * from cities";
          $result = mysqli_query($db,$sql);
          if (mysqli_num_rows($result) > 0 ) {
             while($row = mysqli_fetch_object($result)) {
                echo "<option value='" . $row->city . "'>" . $row->city ."</option>";
             }
          }
       ?></select></td>
</tr>

2 个答案:

答案 0 :(得分:0)

您不能在没有页面加载的情况下将值从HTML传递到PHP并运行PHP。尝试使用jquery library(survey) data(api) xtabs(~sch.wide+stype, data=apipop) dclus1<-svydesign(id=~dnum, weights=~pw, data=apiclus1, fpc=~fpc) tbl <- svytable(~sch.wide+stype, dclus1) tbl[] <- paste0(round(tbl, 2), " (", round(prop.table(tbl)*100, 2), "%)") tbl stype sch.wide E H M No 406.16 (6.56%) 101.54 (1.64%) 270.78 (4.37%) Yes 4467.8 (72.13%) 372.32 (6.01%) 575.4 (9.29%) 获取选定州的城市值,并使用jquery $.get()更改城市下拉列表<select>

答案 1 :(得分:0)

谢谢Chee,这帮助我使用jQuery向另一个方向发展。这就是我最终要做的事情:

<tr>
   <td>City</td>
   <td><select name="city" id="city"><option value=''>Select</option>
                                <script>
$('#state').on('change', function(){
        var city = $(this).val();
        if(city){
            $.ajax({
                type:'POST',
                url:'ajaxData.php',
                data:'city='+city,
                success:function(html){
                    $('#state').html(html);
                }
            });
        }else{
            $('#city').html('<option value="">Select state first</option>');
        }
    });

</script></select></td>
</tr>

这是我的ajaxData.php文件:

    $sql = "SELECT * FROM $cities WHERE ".$_POST['city'].";
    $result = mysqli_query($db,$sql);

    if (mysqli_num_rows($result) > 0){
        echo '<option value="">Select City</option>';
        while($row = mysqli_fetch_object($result)){
            echo "<option value='" . $row->city. "'>" . $row->city. "</option>";
        }
}