我有两个 MySQL 表:
- “国家/地区”,包含字段:“country_id”和“国家/地区”
- “city”,包含以下字段:“city_id”、“city”、“city_link”和“country_id”
我想构建一个 html 双下拉菜单,用户可以在其中选择“国家/地区”,然后根据“国家/地区”选择“城市”。另外,一旦选择了“城市”,我希望有一个使用 href“city_link”的 onClick 事件,该事件将用户带到另一个页面。
有两个文件(ajaxcalling.php):
<?
include("/connection.php");
$ID=$_REQUEST['country_id'];
$connect=mysql_connect($hostname_c, $username_c, $password_c);
echo 'Details:<select name="details" width="100">';
$result = mysql_db_query($database, "SELECT * FROM c_city WHERE country_id=".$ID);
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<option value=".$row['city_id'].">".$row['city']."</option>";
}
echo '</select>';
mysql_close($connect);
?>
和(dropdown.php)
<script>
function CreateXmlHttpObject() { //function to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();//creates a new ajax object
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
//this is for IE browser
}
catch(e){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
//this is for IE browser
}
catch(e1){
xmlhttp=false;//error creating object
}
}
}
return xmlhttp;
}
function CategoryGrab(strURL)
{
var req = CreateXmlHttpObject(); // function to get xmlhttp object
if (req)
{
req.onreadystatechange = function()
{
if (req.readyState == 4) { //data is retrieved from server
if (req.status == 200) { // which reprents ok status
document.getElementById('details').innerHTML=req.responseText;
//put the results of the requests in or element
}
else
{
alert("There was a problem while using XMLHTTP:\n");
}
}
}
req.open("GET", strURL, true); //open url using get method
req.send(null);//send the results
}
}
</script>
<?
include("connection.php");
$connect=mysql_connect($hostname_c, $username_c, $password_c)
or die ("Mysql connecting error");
echo '<table align="center"><tr><td><center><form method="post" action="">Category:
<select name="category"
onChange="CategoryGrab('."'".'ajaxcalling.phpcountry_id='."'".'+this.value);">';
$result = mysql_db_query($database, "SELECT * FROM c_country");
$nr=0;
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
$nr++;
echo "<option value=".'"'.$row['country_id'].'" >'.$row['country']."</option>";
}
echo '</select>'."\n";
echo '<div id="details">Details:<select name="details" width="100" >';
$result = mysql_db_query($database, "SELECT * FROM c_city WHERE country_id=1");
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo "<option value=".$row['city_id'].">".$row['city']."</option>";
}
echo '</select></div>';
echo '</form></td></tr></table>';
mysql_close($connect);
?>
这是一个link
真的很感谢一些帮助,因为我已经被困在这个问题上有一段时间了......
最佳答案
首先,您提供的链接很困惑,它不显示任何内容。我查看了源代码并发现了一些东西。
- 您的脚本标记位于标记之外。
- 您用来链接 javascript 文件的脚本标记是错误的,您应该关闭该脚本标记。像这样的事情
<script type="text/javascript" src="path to ur file"></script>
对于依赖者,这里有几个链接
www.huanix.com/files/dependent_select/dependent_select.php
http://bytes.com/topic/php/answers/708593-dependent-dropdown-list-mysql
http://www.plus2net.com/php_tutorial/ajax_drop_down_list.php
关于php - 双下拉菜单 - php MySQL Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8379411/