我有一個小問題。我想進行自動搜索,但是我的webrequest(自動)結果和結果(如果我只是輸入)之間存在差異。Webrequest未完全工作
我希望結果完全一樣,結果應該是我在輸入時得到的結果。
代碼的請求:
function showUser(str, str2)
{
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("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET", "klanttabel.php?search=" + encodeURIComponent(str) + "&search2=" + encodeURIComponent(str), true);
xmlhttp.send();
}
代碼查詢(至極給了我正確的結果)
if($search != ''){
$where[] = "(klant_id LIKE '%" .$search."%' OR voornaam LIKE '%" .$search."%' OR achternaam LIKE '%" .$search."%' OR email LIKE '%" .$search."%' OR plaats LIKE '%" .$search."%' OR bedrijfsnaam LIKE '%" .$search."%') ";
if($search2 != ''){
$where[] = " (klant_id LIKE '%" .$search2."%' OR voornaam LIKE '%" .$search2."%' OR achternaam LIKE '%" .$search2."%' OR email LIKE '%" .$search2."%' OR plaats LIKE '%" .$search2."%' OR bedrijfsnaam LIKE '%" .$search2."%') ";
}
$query_where = (is_array($where))?" WHERE ".implode(" AND ", $where):"";
$result = mysql_query("SELECT * FROM klant ".$query_where." ORDER BY klant_id DESC");
$i = 0;
}
我有兩個輸入字段,這樣就可以搜索兩個不同的值。當我輸入並按回車鍵時,它會給我相應的結果。
但是,如果我讓它自動執行,它只是從我輸入的最後一個字段給出結果。
所以基本上,它只是搜索最後一個字段。我認爲這是與我的輸入字段,所以這裏是該代碼:
<form method="get">
<input onfocus="this.value=''" type="text" name="search" value="Naam..." onkeyup="showUser(this.value)"></input><br />
<input onfocus="this.value=''" type="text" name="search2" value="Plaats..." onkeyup="showUser(this.value)"></input><input type="submit" value="zoeken" name="submit2" </input></form>
你可能要縮進你的代碼,並使用像jQuery庫來執行的請求。它肯定會讓你的生活更輕鬆。 – pimvdb
好的, 但我應該怎麼做?我沒有任何jQuery的經驗... – Andre
轉到http://jquery.com並下載庫。關於你想做什麼的基礎知識有一些很好的教程。另一個庫是yui - http://developer.yahoo.com/yui/ –