1

我有一个数据库,我想将数据放到网站上。它包含按名称和 ID 列出的状态。按 id、namne 和 state 列出的县,其中包含他们的 ID,然后是存在的俱乐部,并引用了他们所在的县 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 内部服务器错误...

有什么想法我哪里出错了吗?

4

2 回答 2

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
    }
});

});

于 2013-02-14T03:37:05.553 回答
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);
?> 
于 2013-02-14T04:35:34.747 回答