編集: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 に変更すると、完全に機能しますが、1 つの検索しか表示されないため、これが通常の未定義のインデックス エラーであるかどうかはわかりません。エラーではありますが、利用可能な検索は 1 つです。
名前はボブ・スミスとジョン・スミスです。この元のコードを使用して Smith と入力すると、2 つの検索候補が表示されますが、未定義のインデックス エラーが表示されます。* を cfname に変更すると、そのうちの 1 つだけが検索候補として表示されます。
どのようなエラーが発生し、どのように修正できるかわかりません。助けていただければ幸いです。