如何从mysql db填充下拉列表并根据选择填充php表单中的另一个下拉列表?

时间:2012-05-13 11:02:39

标签: php mysql

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

1 个答案:

答案 0 :(得分: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

的一个工作示例