2009-11-15 53 views
0

您可以在不按回車鍵的情況下搜索標籤。從MySQL數據庫jQuery的生活搜索?

我想知道:

  • 是從數據庫或XML文件檢索到的標籤?
  • 是否涉及ajax?

我是新的前端。如果涉及Ajax的話。我應該如何編寫代碼?

我希望它能夠訪問一個返回數據的php文件。但我不熟悉它的實際工作原理。

應的代碼看起來是這樣的:

<html> 
<body> 

<script type="text/javascript"> 
function ajaxFunction() 
{ 
var xmlhttp; 
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) 
{ 
document.myForm.time.value=xmlhttp.responseText; 
} 
} 
xmlhttp.open("GET","time.php",true); 
xmlhttp.send(null); 
} 
</script> 

<form name="myForm"> 
Name: <input type="text" name="username" onkeyup="ajaxFunction();" /> 
Time: <input type="text" name="time" /> 
</form> 

</body> 
</html> 

我怎麼送他釋放的鍵到PHP之後,用戶鍵入的文本?以及如何PHP應用程序獲取標籤後,返回值選擇。回聲?

plz指導我一點。即時消息如此迷茫,當涉及前端時。

+0

它真的有關它是如何做到的?您提供的所有變體都是可行的。你使用什麼取決於你的設置和什麼對你最有意義 – jitter

+0

問題是我不知道如何編碼它的工作=)你如何發送數據到PHP文件?你如何發送數據從PHP返回,與回聲聲明?它是接收或jQuery的ajax?應該從數據庫中檢索?或者你從XML文件嗎?但如果它來自XML,那麼你必須從數據庫中導出它? PLZ指導我一點=) – ajsie

回答

2

實際上,你可以找到自己出來使用Firebug。您會注意到,在標記文本框中鍵入一個字母將觸發對服務器的請求。

例如,條目「C」會給你從服務器以下響應:

c#|48259 
javascript|18318 
c++|16999 
asp.net-mvc|7224 
c|6948 
css|6563 

那麼結果中使用jQuery SO然後顯示出來解釋。

用Firebug爲你寫一個答案,你還會注意到,客戶端發送請求,每分鐘左右:

POST answer-activity-heartbeat 

這也是爲什麼你注意到你正在工作的問題有已用新答案更新。

一般來說,使用FireBug將幫助你瞭解網站的工作方式。我建議你開始使用它,如果你想看到更好的構思。

問候

+0

我有安裝螢火蟲,但我在前端noob。我有HTML,CSS和SCRIPT菜單。我應該使用哪個菜單來跟蹤您描述的更改?我看不到任何實時更改。 – ajsie

+0

轉到右側的網絡標籤:) – karlipoppins

1

看着螢幕控制檯,你可以看到它用ajax發送和接收數據。最有可能是從數據庫中提取數據的腳本。

你可以很容易地用jQuery做到這一點。

<script type="text/javascript"> 
    $("#username").autocomplete("search.php"); 
</script> 
<form name="myForm"> 
    Name: <input type="text" name="username" id="username" /> 
    Time: <input type="text" name="time" /> 
</form> 

<?php 
//search.php 
$q = $_GET['q'] 
$result = $db->query("SELECT username, id FROM users WHERE username LIKE '%$q%'"); 
while($user = $result->fetch_assoc()){ 
    echo $user['username']."|".$user['id']."\n"; 
} 

你可以在這裏下載該插件:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

和jQuery:http://jquery.com

+0

並且不要忘記清理客戶端輸入和/或使用參數化查詢來避免SQL注入。 – BalusC

0

我建議,如果你真的需要知道它是如何工作去看一下JS documentation,但如果你需要什麼,如果快做,使用jquery和閱讀文檔(或買了一本書像jQuery Reference Guide)。它真的簡化了AJAX的工作,並且可以從服務器發回任何你想要的東西,從JSON到HTML。

順便說一句,知道何時輸入框值發生變化以觸發AJAX請求的JS使用的是輸入的onchange event