根据先前的选择填充下拉列表
Posted
技术标签:
【中文标题】根据先前的选择填充下拉列表【英文标题】:Populating drop-down based on previous selection 【发布时间】:2011-11-04 10:54:54 【问题描述】:我的 mysql 表看起来像这样
地区表
id | region
-------------------
1 | Region1
2 | Region2
...
和学校表
id | school
-------------------
1 | schno1
1 | schno5
1 | schno6
2 | scho120
我的注册表单中有多个选择(下拉)菜单。区域下拉列表如下所示
<select name="region">
<option value="0">Select the region</option>
<?php
$result=$db->query("SELECT * FROM regions");
while($row=$result->fetch_array(MYSQLI_BOTH))
echo '<option value="'.$row[0].'">'.$row[1].'</option>';
?>
</select>
我想要做的是,获取“地区”id,然后根据“学校”表中的 id(先前选择的 id)填充学校下拉菜单。我是js的新手。请帮我修复它。提前谢谢。
【问题讨论】:
【参考方案1】:1) 利用 jQuery 更改事件(绑定到区域选择) 2) 调用您的 php 脚本,您应该在其中提供基于区域 id 的学校数据 3) 将数据附加到学校选择
www 上有很多例子 - http://remysharp.com/2007/01/20/auto-populating-select-boxes-using-jquery-ajax/
【讨论】:
我是 js 新手。我想不通。如果可以,请编辑我的代码。 阅读文档,阅读示例,尝试一下。这就是你学会做某事的方式。【参考方案2】:$region = mysql_real_escape_string($_POST['region']);
$query = "SELECT s.school FROM regions r
INNER JOIN schools s ON (s.region_id = r.id)
WHERE r.region LIKE '$region' "; <<-- LIKE is case insensitive, '=' is NOT
$result = $db->query($query);
if not($result) then die("error");
while($row=$result->fetch_array(MYSQLI_BOTH))
echo '<option value="'.$row[0].'">'.$row[1].'</option>';
【讨论】:
这是服务器端部分。以及如何找出客户端部分?以上是关于根据先前的选择填充下拉列表的主要内容,如果未能解决你的问题,请参考以下文章
根据 python plotly dash 中先前单选项目/下拉列表中的选择禁用下拉列表
如何使用Javascript根据先前的下拉值显示第二个下拉列表