2012-05-07 6 views
0

入力をPHPサーバに送信しています。サーバはクライアント側に出力を返します。 入力がサーバーに行かないようですが、ハイライト機能を実装するロジックに問題があります。php AJAX server

クライアント側 あなたが入力を入力し、サーバーが入力を取得し、名前または番号が文中に存在する場合、サーバーに

<html> 
    <head> 
    <script type="text/javascript"> 
    function showUser(str) 
    { 
    if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    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("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 
    xmlhttp.open("GET","test_server.php?q="+str,true); 
    xmlhttp.send(); 
} 
</script> 
</head> 
<body> 

<form> 
    Input: <input type="text" name="user" /> 
    <input type="submit" value="Submit" /> 
</form> 
<br /> 
<div id="txtHint"><b>The result will be listed here.</b></div> 

</body> 
</html> 

を送ります。 これらの条件を強調表示してクライアントに戻ります。

<?php 
$q=$_GET["q"]; 
$name=array("jake","jill"); 
$number=array("one","two","three","four","five"); 
$sentence= split(" ", $q); 
echo "<table border='1'> 
<tr> 
<th>insert</th> 
<th>tagged</th> 

</tr>"; 
echo "<tr>"; 
echo "<td>" . $q . "</td>"; 
echo "<td>" "</td>"; 
echo "</tr>"; 

echo "</table>"; 

?> 
+2

だけヒントを...、作る多くのライブラリがありますプロセスはずっと簡単です。私はこの種のことにjQueryを推奨しており、DOMを操作するためのかなりの機能を提供しています。再び、それは100%必要ではありませんが、いくつかの面倒を節約します。 – Brad

+0

私は@ブラッドに同意する、jQueryは面倒をかなり節約することができます。 – honyovk

+0

jqueryの簡単なコードを教えていただけますか? – draford

答えて

1

ここではうまく機能し、これを試してみてください:それはXmlHttpRequestの、何この仕事を成し遂げるためにないを使用することが完全に可能である一方、

<html> 
    <head> 
    <script type="text/javascript"> 
window.onload = function(){ 
    function showUser(str) 
    { 
    if (str=="") 
    { 
    document.getElementById("txtHint").innerHTML=""; 
    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("txtHint").innerHTML=xmlhttp.responseText; 
    } 
} 
    xmlhttp.open("GET","test_server.php?q="+str,true); 
    xmlhttp.send(); 
    return false; 
} 
document.getElementById('form').onsubmit = function(){ 
    showUser(document.getElementById('user').value); 
    return false; 
} 
} 
</script> 
</head> 
<body> 

<form id="form"> 
    Input: <input type="text" id="user" name="user" /> 
    <input type="submit" value="Submit" /> 
</form> 
<br /> 
<div id="txtHint"><b>The result will be listed here.</b></div> 

</body> 
</html>