动态填充mysql数组到下拉菜单

时间:2013-02-14 03:06:32

标签: php html mysql

我有一个数据库,我想将数据输出到网站上。它包含按名称和ID列出的状态。由id,namne和州列出的县,包含thems ID,然后是存在的俱乐部,引用它们存在的县id和实际数据列。

我得到了什么:

一个下拉菜单,用状态ID和名称填充自身。

我想要完成的事情:

在选择状态时,让我们说ny,取它的id并使用它来收集县下拉的另一个mysql数组。我希望它在选择状态时动态发生,甚至可以在下拉列表旁边给出结果计数。

$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

---- --- EDIT

使用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内部服务器错误...

我出错的任何想法?

2 个答案:

答案 0 :(得分:1)

尝试向元素添加一个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
    }
});

});

答案 1 :(得分:0)

尚未发表评论。 但对于第二个问题,尝试:

<?php
$q=$_GET["q"];

$cn=mysql_connect("localhost","user","password") or die("Note: " . mysql_error());
echo "Conn ok<br>";
mysql_select_db("snowusa_clubs", $cn);
echo " Database opened<br>"; 
$sql="SELECT * FROM county WHERE state_id = '$q' ORDER by name";

$result = mysql_query($sql);
echo " Database queried <br>";

echo "<select name='County' size=1>";

while($rc = mysql_fetch_array($result))
{
echo "<option value='" .$rc['id'] . "'>" . $rc['name'] . "</option>";//added single quotes in the value
 }
echo "</select> ";

mysql_close($cn);
?>