[英]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.