我不确定如何解释。这让我感到困惑,因为我仍然是这个php世界的新手。希望你们能帮助我。
我有一张表格。在该表格中有两个下拉列表。第一个下拉列表将显示已保存在数据库中的所有位置。问题是如何根据在第一个下拉列表中选择的位置在第二个下拉列表中显示ID号。
任何人都可以帮助我吗?
代码:
<form action="form.php" method="post" name="order">
<table>
<tr>
<td>Select Location :</td>
<td> <select name="location" id="location">
<option>-- Location --</option>
<?php
$query="SELECT DISTINCT location FROM inventory";
$result=mysql_query($query);
while(list($locationid)=mysql_fetch_row($result)) {
echo "<option value=\"".$location."\">".$location."</option>";
}
?>
</select>
</td>
</tr>
<tr>
<td>Date :</td>
<td><input type="text" nama="date" /></td>
</tr>
<td>Id Number:</td>
<?php
$query="SELECT DISTINCT idno FROM asset WHERE locationid='inventory.location'";
$result=mysql_query($query);
while(list($idno)=mysql_fetch_row($result)) {
echo "<option value=\"".$idno."\">".$idno."</option>";
}
?>
</td>
</tr>
<tr><td>
<input type="button" value="submit" name="submit" /> </td></tr>
</table>
答案 0 :(得分:2)
您有3个主要选项:
一次性“一次性”执行此操作,只需调用一次PHP页面即可呈现页面的HTML,并且不会回发到另一个页面并在浏览器中刷新,或者对第二个下拉列表的任何AJAX调用JSON。相反,您可以将“BOTH”下拉菜单的所有可能值“推送”到浏览器,并使用Javascript实际缩小第二个下拉列表中显示的值列表,具体取决于您在第一个中选择的内容
用你的php页面进行2次“调用”,第一次使用第一个下拉列表中的所有值呈现页面,第二次使用NO值,然后当你从第一个下拉列表中选择值时, page / form / dropdown会触发一个回发(你的第二次调用)到你的PHP页面,这将在第二个下拉列表中重新填充页面,但是只有适当的(缩小的)选项。
< / LI>通过2次调用完成,但没有RE-RENDERING页面而且没有POSTBACK。相反,您将在服务器上拥有2个PHP页面/脚本。
这可以使用Native Javascript或jQuery完成。但是,使用jQuery会更容易。
答案 1 :(得分:0)
关于此主题,SO
上有几篇帖子。请先阅读这些主题,希望这些有用 -
答案 2 :(得分:0)
我在这里发布的另一个答案是:
(请根据您的要求尝试更改内容。)
<span class="location_lable">Please select state from Dropdown: </span>
<?php
$row = $wpdb->get_results("SELECT distinct(state_id), state_name from wp_state_city ", ARRAY_N);
echo "<select name='states' id='states'><option value=''>Select State</option>";
foreach($row as $results)
{
echo $fetchData = '<option value="'.$results[0].'">'.$results[1].'</option>';
}
echo "</select>";
?>
<span class="location_lable">Please select city from Dropdown: </span>
<select name="city" id="city"><option value=" ">Select city</option></select>
<script>
$("#states").change(function() {
$("#city").html(' ');
state_v = $(this).val();
param = "get_city_front";
$.ajax({
url: "locationtrack.php",
type: 'POST',
dataType: 'json',
data: {'state_v': state_v, 'param': param},
dataType: 'json',
cache: false,
success: function(data){
$("#city").append(jqxhr.responseText);// need to show success
},
error: function(jqxhr) {
$("#city").append(jqxhr.responseText);
}
});
});
</script>
locationtrack.php
在一个变量中添加查询并返回结果。
<?php
$query="SELECT DISTINCT idno FROM asset WHERE locationid='inventory.location'";
$result=mysql_query($query);
while(list($idno)=mysql_fetch_row($result)) {
$res .= "<option value=\"".$idno."\">".$idno."</option>";
}
echo $res;
?>