我正在创建一个php搜索。我从数据库中选择了 2 个菜单结果。第一个菜单工作正常,但第二个菜单没有。你能帮帮我吗?
这是我的家.php
<?php
require("ConfigPage.php");
$sql="SELECT LocationName
FROM tblplacelocation
Join tblplace ON tblplace.PlaceID=tblplacelocation.PlaceID
Join tbllocation ON tbllocation.LocationID=tblplacelocation.LocationID
where PlaceType='Hotels'" ;
$result = mysql_query($sql,$con);
echo '<form><P style="color:white;">Region</P>
<select name="PlaceID" onchange="showUser(this.value)">
<option value="">Region:</option>';
while($data = mysql_fetch_array($result))
{
$id= $data['PlaceID'];
$lname = $data['LocationName'];
echo "<option value='". $lname. "'>".$lname."</option>";
}
echo "</select></form>";
echo "<div id='txtHint'></div>";
echo "<div id='divImage'></div>";?>
这是获取者.php
<?php
$q = intval($_GET['q']);
include("ConfigPage.php");
$sql="SELECT PlaceName
FROM tblplacelocation
Join tblplace ON tblplace.PlaceID=tblplacelocation.PlaceID
Join tbllocation ON tbllocation.LocationID=tblplacelocation.LocationID
WHERE LocationName = '".$q."' AND PlaceType='Hotels'";
$result = mysql_query($sql,$con);
echo '<form><P style="color:white;">Place Name</P>
<select name="adminID" onchange="showImages(this.value)">
<option value="">Select a place:</option>';
while($data = mysql_fetch_array($result))
{
$pid= $data['LocationName'];
$pname = $data['PlaceName'];
echo "<option value='". $pid. "'>".$pname."</option>";
}
echo "</select></form>";
mysql_close($con);
?>
这是 Java 脚本:
function showUser(str)
{
if (str=="")
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getuser.php?q="+str,true);
xmlhttp.send();
}
我不知道怎么了。第一个菜单显示结果,但第二个菜单不包含任何内容。
我建议你使用Firebug进行调试。
- 检查您是否有任何JavaScript错误(可能是语法错误)
- 检查您的 ajax 请求是否正在发送,如果是,请检查响应中的内容
- 检查您的 DOM 元素是否被正确选择...在Firebug中,你可以在控制台区域执行JavaScript。检查您的 document.getElementById 是否通过自己插入内容来选择正确的元素
- 如果所有这些都有效,请检查您的 select 元素是否有空选项。 如果是这种情况,您的变量应为空
- 如果您的选择元素没有选项,则您的 SQL Select 可能有问题
如果你只是在试验,没关系,但除此之外,让我说你的代码看起来很丑。这不是你应该编程的方式。您应该考虑按关注点划分代码。查看任何 PHP 框架的模型-视图-控制器模式和初学者教程。
MVC:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
一个易于学习的框架:http://www.yiiframework.com/