PHP文件从html表单[AJAX]接收空白值

时间:2014-10-05 20:24:16

标签: php mysql ajax xampp

我的目标是使用AJAX,但我对此有点新意,为用户提供搜索内容并获取数据库线的可能性。我测试了几次,试图调试,但找不到解决方法。谢谢!

HTML code:

<!DOCTYPE html>
<html>
<head>
<script>
function showUser(str) {
if (str=="") {
document.getElementById("jotamacho").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("jotamacho").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","output.php",true);
xmlhttp.send();
}
</script>


</head>

<body>

<form action="output.php" method="post"  onchange="showUser(this.value)">
<select name="feature">
<option value="Nome">Primeiro Nome</option>
<option value="Apelido">Apelido</option>
<option value="País">País de origem</option>
<option value="Data">Data de nascimento</option>
</select>


Search: <input type="text" name="textquery" onchange="showUser(this.value)><br>


<br>
<div id="jotamacho">Here !</div>  

</form>
</body>
</html>

我的output.php文件:

<?php

$con=mysqli_connect("127.0.0.1","root","","");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$search =mysqli_real_escape_string($con, $_POST['textquery']);
$coluna =mysqli_real_escape_string($con, $_POST['feature']);
$resposta = mysqli_query($con,"SELECT Nome,Apelido,Data_nascimento,País FROM Pessoa   WHERE Pessoa.$coluna like '$search' ");

echo " <b> Results:";

echo "<table border='5'>
<tr>
<th>Nome</th>
<th>Apelido</th>
<th>Data de Nascimento</th>
<th>País</th>
</tr>";


while($row = mysqli_fetch_array($resposta)) { 
echo "<tr>";
echo "<td>" . $row['Nome'] . "</td>";
echo "<td>" . $row['Apelido'] . "</td>";
echo "<td>" . $row['Data_nascimento'] . "</td>";
echo "<td>" . $row['País'] . "</td>";
echo "</tr>";
}

echo "</table>";

mysqli_close($con);
?>

当我测试时:

注意:未定义的索引:第15行的E:\ XAMPP \ htdocs \ Bioinformatica \ AJAX \ output.php中的textquery

注意:未定义的索引:第16行的E:\ XAMPP \ htdocs \ Bioinformatica \ AJAX \ output.php中的功能

警告:mysqli_fetch_array()要求参数1为mysqli_result,第36行的E:\ XAMPP \ htdocs \ Bioinformatica \ AJAX \ output.php中给出布尔值

1 个答案:

答案 0 :(得分:1)

<!DOCTYPE html>            
<html>            
<head>            
<script>            
function showUser() {            
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.status==200) {            
document.getElementById("jotamacho").innerHTML=xmlhttp.responseText;            
}            
}            
var fea=document.getElementById("feature").value;            
var txq=document.getElementById("textquery").value;            
xmlhttp.open("POST","output.php",true);            
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");            
xmlhttp.send("feature=" + fea + "&textquery=" + txq);            
}            
</script>            


</head>            
<body>            
<select id="feature">            
<option value="Nome">Primeiro Nome</option>            
<option value="Apelido">Apelido</option>            
<option value="País">País de origem</option>            
<option value="Data">Data de nascimento</option>            
</select>            
Search: <input type="text" id="textquery" onchange="showUser()"><br>            
<br>            
<div id="jotamacho">Here !</div>              
</body>            
</html>