基于第一个下拉列表的值的第二个下拉列表


2nd dropdown list based on the value of first drop down list

我有以下代码来生成下拉列表。

$query = "SELECT * FROM firm";
// Execute it, or return the error message if there's a problem.
$result = mysql_query($query) or die(mysql_error());
$dropdown = "<select name='name'>";
while($row = mysql_fetch_assoc($result)) 
    $dropdown .= "'r'n<option value='{$row['name']}'>{$row['name']}</option>"; 
$dropdown .= "'r'n</select>";

我如何修改此代码以根据上面下拉列表中选择的值生成第二个下拉列表。

我试图实现的是,你可以首先如上所述选择一家公司,然后第二,我希望能够在该特定公司的不同领域之间进行选择。所有这些信息都在一张表中。

可以修改这个代码吗。

您可以在第一个选择元素上绑定一个更改事件

$("#firm").change(function(){...});

当这种情况发生时,您需要发出AJAX请求,为第二个select元素获取这些额外的选项,然后使用该结果集来填充新的select元素。

在这里,您可以看到获取新结果集并填充选择元素的Javascript实现:点击Javascript/Jquery并使用Json数据填充选择框选项

附言:还有第二个选项,你不使用AJAX,但首先获得所有的选择选项及其相互关系,然后根据所选项目在第二个选择元素中隐藏/显示连接区域。

用javascript创建一个函数来生成查询字符串:

<script type="text/javascript">
function show(val){
  window.location="pagename.php?drp="+val;
}
</script>

在Dropdown的onchange事件上调用此函数:

  $dropdown = "<select name='name' onChange='show(this.value)'>";

现在生成一个查询字符串。在任意变量中获取查询字符串值

绑定第二个下拉列表:

if(isset($_REQUEST["drp"]))
{
   $val=$_REQUEST["drp"];
$query = "SELECT * FROM tablename where parametername='$val'";
    // Execute it, or return the error message if there's a problem.
    $result = mysql_query($query) or die(mysql_error());
    $dropdown = "<select name='drp2'>";
    while($row = mysql_fetch_assoc($result)) {
    $dropdown .= "'r'n<option value='{$row['name']}'>{$row['name']}</option>";
    }
    $dropdown .= "'r'n</select>";
}
相关文章: