0

我有一种情况,我在 mysql 表中有列,我从中填充下拉列表以获取另一个表中第二个下拉列表的查询条件。我如何使用 php 并选择第二个下拉列表传递给另一个输入表单?我在两个表中都有相同的 formBarkod 列,它是表数据之间的连接。

4

1 回答 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 回答