PHP Ajax没有显示
我试图使用PHP和Ajax从MySQL数据库显示数据,但是while循环没有在下拉列表中显示我的数据。我是否有语法错误?这是我的密码:PHP Ajax没有显示,php,javascript,xml,ajax,while-loop,Php,Javascript,Xml,Ajax,While Loop,我试图使用PHP和Ajax从MySQL数据库显示数据,但是while循环没有在下拉列表中显示我的数据。我是否有语法错误?这是我的密码: <html> <head> <script type="text/javascript"> function showUser(str){ if (str == "") { document.getElementById("txtHint").in
<html>
<head>
<script type="text/javascript">
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();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<option value="1">Peter Griffin</option>
<option value="2">Lois Griffin</option>
<option value="3">Glenn Quagmire</option>
<option value="4">Joseph Swanson</option>
</select>
</form>
<br/>
<div id="txtHint">
<b>Person info will be listed here.</b>
</div>
</body>
</html>
函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
}
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
else{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getuser.php?q=“+str,true”);
xmlhttp.send();
}
选择一个人:
彼得·格里芬
路易斯·格里芬
格伦泥潭
约瑟夫·斯旺森
此处将列出人员信息。
php文件:
<?php
$q=$_GET["q"];
$con = mysql_connect('localhost', 'djronlove', 'Djronlove');
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("djronlove", $con);
$sql="SELECT * FROM user WHERE id = '".$q."'";
$result = mysql_query($sql);
echo "<table border='1'>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
<th>Hometown</th>
<th>Job</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
?>
url是如果数据库表的名称是正确的,那么这个while循环应该可以工作
while($row = mysql_fetch_array($result), MYSQL_ASSOC){
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
while($row=mysql\u fetch\u array($result),mysql\u ASSOC){
回声“;
回显“$row['FirstName']”;
回显“$row['LastName']”;
回显“$row['Age']”;
回显“$行[“家乡]”;
回显“$row['Job']”;
回声“;
}
检查此项如果数据库表的名称正确,则此while循环应该可以工作
while($row = mysql_fetch_array($result), MYSQL_ASSOC){
echo "<tr>";
echo "<td>" . $row['FirstName'] . "</td>";
echo "<td>" . $row['LastName'] . "</td>";
echo "<td>" . $row['Age'] . "</td>";
echo "<td>" . $row['Hometown'] . "</td>";
echo "<td>" . $row['Job'] . "</td>";
echo "</tr>";
}
while($row=mysql\u fetch\u array($result),mysql\u ASSOC){
回声“;
回显“$row['FirstName']”;
回显“$row['LastName']”;
回显“$row['Age']”;
回显“$行[“家乡]”;
回显“$row['Job']”;
回声“;
}
检查此问题在于您的数据库查询没有返回任何结果问题在于您的数据库查询没有返回任何结果我没有看到任何明显的错误。如果是我的项目,我会这么做: 1) 首先看看你的php文件是否被使用代理调用。这将帮助您确定错误是来自客户端代码还是php代码。(就我个人而言,我使用——它有一个免费版本,你可以试用。我买了一个许可证,它值每一分钱) 2) 我将使用一个javascript库来简化ajax过程以实现跨浏览器兼容性,而不是尝试使用直接的javascript来实现ajax。我建议使用jquery,如果您的问题在客户端代码中,这将特别有用 3) 如果您的问题在于PHP代码,请在整个PHP文件中向自己回显数据以查明问题所在 4) 我还将在mysql中启用错误报告功能,以便在您进行此类测试时,如果您的查询导致错误,您将看到:
$result = mysql_query($sql) or die(mysql_error());
我没有看到任何明显的错误。如果是我的项目,我会这么做: 1) 首先看看你的php文件是否被使用代理调用。这将帮助您确定错误是来自客户端代码还是php代码。(就我个人而言,我使用——它有一个免费版本,你可以试用。我买了一个许可证,它值每一分钱) 2) 我将使用一个javascript库来简化ajax过程以实现跨浏览器兼容性,而不是尝试使用直接的javascript来实现ajax。我建议使用jquery,如果您的问题在客户端代码中,这将特别有用 3) 如果您的问题在于PHP代码,请在整个PHP文件中向自己回显数据以查明问题所在 4) 我还将在mysql中启用错误报告功能,以便在您进行此类测试时,如果您的查询导致错误,您将看到:
$result = mysql_query($sql) or die(mysql_error());
那么,您确定您的SQL代码正在返回值,并且您正在请求SQL注入攻击。您得到响应了吗?尝试警报
(xmlhttp.responseText)
紧接着xmlhttp.onreadystatechange
作为建议,我建议您使用jQuery ajax,但这不是这个问题的解决方案。:)那么,您确定您的SQL代码正在返回值,并且您正在请求SQL注入攻击。您得到响应了吗?尝试警报(xmlhttp.responseText)
紧接着xmlhttp.onreadystatechange
作为建议,我建议您使用jQuery ajax,但这不是这个问题的解决方案。:)我的列名错了。我有身份证而不是人名谢谢。没问题。我同意其他人的观点,即您应该确保有人没有对您的用户输入进行SQL注入攻击。这只是一个测试数据库,我刚刚删除了它。所以我很感谢你的关注。我的列名错了。我有身份证而不是人名谢谢。没问题。我同意其他人的观点,即您应该确保有人没有对您的用户输入进行SQL注入攻击。这只是一个测试数据库,我刚刚删除了它。所以我很好,谢谢你的关注。