编辑:NVM 完全修复了它。呜呜呜。
我很难弄清楚为什么错误“未定义的索引: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,则其中只有一个显示为可能的搜索。
我不再确定我遇到了什么错误以及如何解决它。帮助将不胜感激。