我遇到的情况是,我在 mysql 表中有列,我从中填充下拉列表以获取从另一个表中查询第二个下拉列表的条件。我如何使用 php 并选择第二个下拉列表传递到另一个输入表单?我在两个表中都有相同的表单Barkod列,这是表数据之间的连接。
这
听起来像是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 的工作示例