【发布时间】:2013-03-03 15:57:58
【问题描述】:
我正在尝试使用 PHP 和 MySQL 从第一个下拉列表中选择的值填充第二个下拉列表,并且不刷新页面。我认为这很简单,但无法使其正常工作,因此非常感谢任何帮助。
到目前为止,我有以下内容:
HTML 表单 (form.php)
<select name="list1" id="list1">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<select name="list2" id="list2">
</select>
JavaScript(在 form.php 中)
<script type="text/javascript">
$("#list1").change(function() {
$("#list2").load("get_list2.php?id=" + $("#list1").val());
});
</script>
get_list2.php
require_once("config.php");
$q1 = mysql_query("SELECT * FROM mytable WHERE id = '$_GET[id]'");
while($row1 = mysql_fetch_assoc($q1)){
echo "<option>".$row1['item']."</option>";
}
谢谢!
【问题讨论】:
-
Please, don't use
mysql_*functions in new code。它们不再维护and are officially deprecated。看到red box?改为了解prepared statements,并使用PDO 或MySQLi - this article 将帮助您决定哪个。如果你选择 PDO,here is a good tutorial. -
尝试使用 id 自己调用 get_list2.php 并查看返回的内容。
-
您的代码似乎易受 SQL 注入攻击。不要在这样的声明中直接使用
$_GET。查看Bobby Tables -
如果您想在不刷新页面的情况下更新第二个列表,您应该查看 AJAX。如果完整列表不太长,您还可以将所有元素与第一个列表一起加载并使用 Javascript 更改显示的项目。
-
感谢@insertusernamehere 的提示 - 从 MySQL 迁移是否意味着我的代码有一天会停止工作?
标签: php javascript mysql drop-down-menu