我有一个数据库,我想将数据发布到网站上。它包含按名称和 ID 列出的状态。按 id、namne 和 state 列出的县包含他们的 ID,然后是 clubs that exist,并引用他们所在的县 id 和实际数据的列。
我得到的:
一个用状态 ID 和名称填充自身的下拉菜单。
我想完成的事情:
在选择 state 时,比方说 ny ,取它的 id 并使用它来为县下拉列表收集另一个 mysql 数组。我希望它在选择 state 时动态发生,甚至可能在下拉列表旁边给出结果计数。
$resstate = mysql_query("SELECT * FROM state ORDER by longstate;") or die("Note: " . mysql_error());
State:
<select name="State" size=1>
<?
while( $rs = mysql_fetch_array( $resstate ) ) {
echo "<option value=" .$rs['id'] . ">" . $rs['longstate'] . "</option>";
}
echo "</select>";
?>
我知道我可以在第一个下拉菜单中使用 JavaScript onChange="this.form.submit()"
,但我的理解是我会在那个位置创建一个新页面点并且不知道我是否可以保留状态下拉的功能,假设您在想要纽约时不小心选择了新罕布什尔州。
这是当前数组填充下拉列表的示例:
http://snowmobileamerica.com/countytest.php
----编辑---
使用 Dagons Advice ,我研究了 Ajax。
我制作了一个 php 文件,该文件应该根据对 getcounty.php?q= 的引用来查询数据库
文件创建如下:
<?php
$q=$_GET["q"];
$cn=mysql_connect("localhost","user","password") or die("Note: " . mysql_error());
mysql_select_db("snowusa_clubs", $cn);
$sql="SELECT * FROM county WHERE state_id = '".$q."' ORDER by name";
$result = mysql_query($sql);
echo "<select name="County" size=1>";
while($rc = mysql_fetch_array($result))
{
echo "<option value=" .$rc['id'] . ">" . $rc['name'] . "</option>";
}
echo "</select>";
mysql_close($cn);
?>
如果我尝试手动运行它 http://www.snowmobileamerica.com/getcounty.php?q=33我收到 500 内部服务器错误...
有什么地方出错了吗?
最佳答案
尝试向元素添加一个 id,然后使用 jquery 对处理程序进行 ajax 调用:
$("#State").change(function() {
$.post("path/to/request handler/" , { "State" : $(this).val() },
function(data){
if (data == "OK"){
//add some elements here
} else {
//handle an error here
}
});
});
关于php - 将 mysql 数组动态填充到下拉菜单中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14867134/