我有一种情况,我在 mysql 表中有列,我从中填充下拉列表以获取另一个表中第二个下拉列表的查询条件。我如何使用 php 并选择第二个下拉列表传递给另一个输入表单?我在两个表中都有相同的 formBarkod 列,它是表数据之间的连接。
问问题
5392 次
1 回答
1
这听起来像是 javascript 的工作。您可以使用 php 和 mysql 填充每个下拉列表,但您需要 javascript 才能使第一个下拉列表中的选择影响下一个下拉列表中的哪个可见。PHP 和 MySQL 看起来像这样:
<?
//Assuming $dbh is a proper mysqli object...
$options = $dbh->query("SELECT * FROM options");
echo '<select id="firstDropdown">';
while($o = $options->fetch_object()) {
echo '<option value="'.$o->id.'">'.$o->name.'</option>';
}
?>
对每个下拉菜单重复该过程。
然后,您必须编写一些 javascript 来进行更改。我不知道足够的“纯”javascript 来做到这一点,但我可以向您展示它在 jQuery 中的样子。假设您的 html 如下所示:
<select id="firstDropdown">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
<select id="dropdown1" class="dropdown">
...
</select>
<select id="dropdown2" class="dropdown">
...
</select>
<select id="dropdown3" class="dropdown">
...
</select>
然后 jQuery 看起来像这样(当然都包含在 document.ready() 中)
$(".dropdown").hide();
$("#firstDropdown").on("change",function(){
$(".dropdown").hide();
var value = $("#firstDropdown").val();
$("#dropdown"+value).show();
});
基本流程是您隐藏所有辅助下拉菜单。然后,每当第一个下拉列表中的值发生更改时,您就会重新隐藏第二个下拉列表,并仅显示所需的下拉列表。您可以通过实际动态创建 dom 元素或使用 ajax 调用来获取新的下拉列表来做更多的事情,但这涵盖了基本概念。
编辑:这是jsfiddle.net上的一个工作示例
于 2012-05-13T11:15:25.000 回答