私は検索ボックスと結果ボックスを持つ簡単な検索フォームを持っています。xmlhttprequestのみステータス3になります
私は検索ワードを入力すると、要求が同じように作成された:PHPスクリプトでhttp://www.site.com/php_handler.php?s=hello と結果が戻ってスクリプトに、このように与えられる:
<?php return $s; ?>
問題は私のhtmlrequestはreadyStateので停止していることです3それは4
JavaScriptに取得していないが、次のようになります
はvar xmlhttp = sajax_init_object();
function sajax_init_object() {
var A;
try {
A=new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
A=new ActiveXObject("Microsoft.XMLHTTP");
} catch (oc) {
A=null;
}
}
if(!A && typeof XMLHttpRequest != "undefined")
A = new XMLHttpRequest();
if (!A)
sajax_debug("Could not create connection object.");
return A;
}
function getSearchItem()
{
gs=document.forms.mainform.resultsfield;
var searchword=document.forms.mainform.searchform.value;
if (searchword.length>=3)
{
setWaitCursor();
clearResults();
var uri = "http://site.com/ajax_handler.php?s="+searchword;
console.log(uri);
xmlhttp.open("GET", uri, true);
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4) {
processResults(xmlhttp.responseText);
removeWaitCursor();
}else{
console.log(xmlhttp.readyState);
}
}
xmlhttp.send(null);
}
else
{
alert("please add at least 3 characters .");
}
}
誰かがなぜそれをSTO教えてもらえますpsで3?
編集:ここにもPHPのコードです:
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
session_start();
//include main file
require_once($_SESSION["FILEROOT"] . "xsite/init.php");
//check if formulier is posted
$zoekterm = C_GPC::getGETVar("s");
$s="";
if ($zoekterm != "") {
$query="SELECT number,name,city,zib,zip_annex FROM articles WHERE version='edit' AND (naam LIKE '%$school%' OR brinnummer='$school') ORDER BY name";
if ($rs=C_DB::fetchRecordSet($query)) {
while ($row=C_DB::fetchRow($rs)) {
if ($row["plaats"]!="") {
$s.=$row["name"].", ".$row["city"]."|".$row["number"]."\n";
} else {
$s.=$row["name"].", ".$row["zip"].$row["zip_annex"]."|".$row["number"]."\n";
}
}
}
}
return $s;
?>
編集:私は私のPHPスクリプトでセミコロンを逃し、今準備状態だけに2
編集を取得し
:
問題はまったく異なります。 4になりますが、結果テキストは表示されません。
私は開始ポストにPHPを掲載します。 1秒待つ。 – sanders
投稿していただきありがとうございます - あなたのAJAXリクエストで使用されたURLを作成し、ブラウザに直接投稿して出力を表示してください。私の提案は、$ sを返すのではなく、$ sをエコーすることです。 – Fenton