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

时间:2013-08-13 11:18:20

标签: php

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

$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>";

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

我想要实现的是,您可以首先选择上述公司,然后我希望能够在该特定公司的不同领域之间进行选择。所有这些信息都在一个表格中。

是否可以修改此代码。

2 个答案:

答案 0 :(得分:0)

您可以在第一个选择元素

上绑定更改事件
$("#firm").change(function(){...});

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

在这里,您可以看到获取新结果集并填充选择元素的Javascript实现:Populate Select box options on click with Javascript/Jquery with Json data

P.S。还有第二个选项,您不使用AJAX,而是先获取所有选择选项,然后根据所选项目隐藏/显示第二个选择元素中的连接区域。

答案 1 :(得分:0)

在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>";
}