用于PHP数据库查询的form onchange AJAX函数
我对AJAX很陌生,希望能得到任何帮助。我一直在尝试使用ajaxonchangeofthefirst下拉菜单调用一个PHP函数来查询数据库,并将匹配结果填充到第二个下拉菜单中。 我的db connect脚本工作正常,我的PHP查询准确地从数据库中提取正确的信息。(当不使用posted变量$cityinput时)问题在于将结果从PHP获取到AJAX,并显示在第二个下拉菜单中用于PHP数据库查询的form onchange AJAX函数,php,html,ajax,forms,Php,Html,Ajax,Forms,我对AJAX很陌生,希望能得到任何帮助。我一直在尝试使用ajaxonchangeofthefirst下拉菜单调用一个PHP函数来查询数据库,并将匹配结果填充到第二个下拉菜单中。 我的db connect脚本工作正常,我的PHP查询准确地从数据库中提取正确的信息。(当不使用posted变量$cityinput时)问题在于将结果从PHP获取到AJAX,并显示在第二个下拉菜单中 <?php require'connect.php'; $cityinput=$_POST['cityinput']
<?php
require'connect.php';
$cityinput=$_POST['cityinput'];
$query="SELECT mname FROM masseurs WHERE lounge='$cityinput'";
$result=mysql_query($query);
$num=mysql_numrows($result);
echo "<b><center>Database Output</center></b><br><br>";
$i=0;
while ($i < $num) {
$mname=mysql_result($result,$i,"mname");
$mname="<option value=''>"mname"</option>";
$i++;}
if (!mysql_query($query))
{die('Error: ' . mysql_error());}
mysql_close();
?>
<html>
<head>
<script>
function getmasseurs()
{if (str=="")
{document.getElementById("masseurinput").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("masseurinput").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","outputpopulate3.php?$mname="+str,true);
xmlhttp.send();
}
</script>
</head>
<body>
<form id="book" action="test.php" method="post">
<p align="center">
<select name="cityinput" id="cityinput" onchange="getmasseurs()">
<option value="0" selected>City</option>
<option value="1">Brisbane</option>
<option value="2">Sydney</option>
<option value="3">Melbourne</option>
<option value="4">Adelaide</option>
<option value="5">Perth</option>
</select>
</p>
<p align="center">
<select name="masseurinput" size="1" id="masseurinput"><div id="cityinput"></div>
</select>
</p>
<p align="center">
<input type="submit">
</form></p>
</body>
</html>
这似乎是错误的:xmlhttp.open(“GET”,“outputppopulate3.php?$mname=“+str,true”)代码>
哪个文件是outputpopulate3.php?最上面的那个?如果没有,请发布该文件的代码
为什么要在其中使用变量$mname。不能只在javascript中使用PHP代码
如果你想知道,你应该使用:
xmlhttp.open("GET","outputpopulate3.php?<? echo $mname; ?>="+str,true);
但是,使用固定的变量名可能会更容易。刚刚意识到,填充第二个下拉菜单时缺少了一段代码。但它无论如何都不起作用:$mname=”“mname”“;应为$mname=“$mname”;
str = document.getElementById('masseurinput').value;