建议后编辑(仍未解决):
我有 2 个下拉菜单,一个叫 Country,另一个叫 City。当用户从 Country 下拉菜单中选择一个国家时(以下下拉菜单将被称为 DDM 为简洁起见),我希望 City DDM 显示该特定国家的所有城市。
我在以下简单形式的数据库中有一个关系(称为 location )(带有一些条目):
id country city
1 India New Delhi
2 India Hyderabad
3 USA San Diego
4 USA Palo Alto
这是我写的代码:
<html>
<head>
<title>Admin Page</title>
</head>
<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$(".country").change(function()
{
var country=$(this).val();
var dataString = 'country='+ country;
alert(dataString);
$.ajax
({
type: "POST",
url: "getcity.php",
data: dataString,
dataType : html,
cache: false,
success: function(data, textStatus)
{
alert(textStatus);
$(".city").html(data);
}
});
});
});
</script>
<body>
<br />
<legend><h2>Welcome Admin!</h2></legend>
<?php
include('db.php');
$sql="SELECT distinct country FROM location";
$result=mysqli_query($con, $sql);
if (!$result)
{
echo "DB Error, could not list tables\n";
echo 'MySQL Error: ' . mysql_error();
exit;
}
echo '<h4>Location :</h4>';
echo '<select name="loaction" class="location">';
echo '<option value="foo">'.'Choose Country'.'</option>';
while ($row=mysqli_fetch_array($result))
{
echo '<option value='.$row[country].'>'.$row[country].'</option>';
}
echo '</select>';
?>
<h4><label>City :</label> </h4>
<select name = 'city' class = 'city'>
<option value = 'foo' > Choose City </option>
</select>
我希望您不厌其烦地向下滚动并查看上面的代码。文件 getcity.php 如下:
<?php
include('db.php');
if($_POST['country'])
{
$country=$_POST['country'];
$sql=mysql_query("select id, city from location where country='$country'");
while($row=mysql_fetch_array($sql))
{
$id=$row['id'];
$city=$row['city'];
echo '<option value="'.$id.'">'.$city.'</option>';
}
}
但是,即使在从 AJAX 调用返回的状态(通过 alert() 看到)为“成功”之后,我在 City DDM 中也看不到任何内容。
我错过了什么?
再次感谢。