2011-07-11 17 views
0

私は少し問題があります。私は自動検索をしたいと思いますが、私が入力したウェブ検索結果(自動)と結果には違いがあります。Web要求が完全に機能していない

私は結果がまったく同じになりたいと思います。結果は、私が入力したときに得られる結果になるはずです。

コード要求:

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; 
} 

あなたは2つの異なる値を検索することができますように、私は2つの入力フィールドがあります。入力してEnterキーを押すと、対応する結果が表示されます。

しかし、私はそれを自動的に行うようにすれば、最後に入力したフィールドの結果が得られます。

基本的には、最後のフィールドを検索するだけです。私はそれが私の入力フィールドとは何かを持っているので、ここではそのためのコードだと思う:

<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> 
+0

。確かにあなたの人生は楽になります。 – pimvdb

+0

いいえ、 どうすればよいですか?私はjQueryの経験がありません。 – Andre

+0

http://jquery.comにアクセスしてライブラリをダウンロードしてください。あなたがしたいことの基本についての非常に良いチュートリアルがいくつかあります。もう一つのライブラリはyuiです - http://developer.yahoo.com/yui/ –

答えて

0

代わりにネイティブXMLHttpRequests、他のすべての回避策を使用して、よりエレガントな解決策がjQuery.ajaxです。また、他のもの:

  • 入力要素には、</input>がありません。

jsFiddle:http://jsfiddle.net/e9drS/で動作する修正された例です。

HTML:

<form id="form"> 
    <input type="text" id="search" name="search" value="Naam..." /> 

    <br /> 

    <input type="text" id="search2" name="search2" value="Plaats..." /> 

    <input type="submit" value="zoeken" /> 
</form> 

JavaScriptを:あなたはあなたのコードをインデントし、要求を実行するためにjQueryのようなライブラリを使用する場合があります

$(function() { 

$('#search, #search2').focus(function() { // clear on focus 
    $(this).val(''); 
}).keyup(function() { // perform request on keyup 
    $.ajax({ type: 'GET', 
      url: 'klanttabel.php', 
      data: { search: $('#search').val(), 
        search2: $('#search2').val() }, 
      success: function(text) { 
       $("#txtHint").html(text); 
      } 
      }); 
}); 

}); 
+0

それはまったく動作しません。私はjquery.jsをダウンロードし、フォローしています: '' あなたの投稿のようなjsコ​​ードがあります... – Andre

+0

@Andre Woons:実際に関数をラップする必要があります'$(function(){...})'を実行して、ページの読み込みが完了したときに関数が呼び出されるようにします。 – pimvdb

+0

うーん、それでも動作しません。:( – Andre

関連する問題