Ajax数据库Livesearch未定义索引

时间:2013-10-19 07:55:39

标签: javascript php ajax database

编辑:NVM完全修复了它。 Woot woot。


我很难弄清楚为什么错误“undefined index:cfname一直出现在下面的代码中。

这是运行实时搜索的search.php

<?php
require_once("config.php");
?>
<script type="text/javascript"> 
//<![CDATA[

function showResult(str)
{
if (str.length==0)
{ 
document.getElementById("livesearch").innerHTML="";
document.getElementById("livesearch").style.border="0px";
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("livesearch").innerHTML=xmlhttp.responseText;
document.getElementById("livesearch").style.border="1px solid #A5ACB2";
}
}
xmlhttp.open("GET","get.php?q="+str,true);
xmlhttp.send();
}
//]]>
</script>
<form>
<table border="0">
<tr><td>Customer search:</td>
<td><input type="text" size="15" onKeyUp="showResult(this.value)"></td>
</tr>
</table>
<div id="livesearch"></div>
</form>

这是html页面

<?php
require('config.php');
$hint="";
$q=$_GET["q"];
if (strlen($q)>0)
{
$res=mysql_query("SELECT * FROM customer WHERE cfname LIKE '%$q%'");
while($serresult=mysql_fetch_array($res))
{
$hint='<div><input type="submit" name="cid[]" value="'.$serresult['cfname'].'" /></div>';
}
}


// Set output to "no suggestion" if no hint were found
// or to the correct values

if ($hint=="")
{
$response="no suggestion";
}
else
{
$response=$hint;
}
//output the response
echo $response;

实时搜索应该做的是在客户搜索框中键入时显示客户名称(cfname)。当我输入正确的密钥时,它告诉我cfname是一个未定义的索引。

现在我不知道这是否是您通常未定义的索引错误,因为当我在$ res查询中将*更改为cfname时,它工作正常,但它只显示一个搜索,而如果我使用*我可以看到它虽然出现错误,但会显示多个可用搜索。

所以,名字是Bob Smith和Jon Smith。如果我使用此原始代码并在Smith中键入,则会出现两个可能的搜索但具有未定义的索引错误。如果我将*更改为cfname,则只有其中一个显示为可能的搜索。

我不确定我有什么错误以及如何解决它。非常感谢帮助。

0 个答案:

没有答案