簡體   English   中英

基於動態選擇填充 Select 字段

[英]Populate Select Field Based on Dynamic Selection

使用 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>

根據第一個下拉列表中的選擇,我想用所選 state 的城市填充第二個下拉列表。 我不知道如何將 state 變量傳遞給第二個查詢。

第二個下拉列表:

<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>

您不能將值從 HTML 傳遞到 PHP 並在沒有頁面加載的情況下運行 PHP。 嘗試使用 jquery $.get()獲取選定 state 的城市值並使用 jquery .html()更改城市下拉列表<select> ()

謝謝 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>";
        }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM