2010-12-02 18 views
0

我已經爲此每天搜索了近一個月。在某些情況下,他們使用$ .ajax方式,在其他情況下使用$ .post方式。在jqueryui自動完成http://jqueryui.com/demos/autocomplete/演示頁面中,您可以看到他們有一種簡單易懂的方式來抓取數據以向用戶顯示。現在我的問題出現了。我試圖做一個簡單的,簡短的從mysql表中獲取名字列表的方法。這就是我現在所擁有的:如何以簡單的方式在PHP + MySQL中使用新的Jqueryui自動完成功能

JS

$( 「#usuario」)自動完成({ 來源: 「search.php中」, 的minLength:3, 選擇:函數(事件,UI ){} });

PHP

$ nameser = $ _POST [ 'usuario'];

$ names ='';

$ result = mysql_query(「SELECT name FROM characters WHERE name LIKE'%$ nameser%'');

while($ row = mysql_fetch_array($ result)){$ names。=「$ row [name]」。「
」; }

echo $ names;

如果我從輸入框發送信息到php它正確地返回搜索模式答案但我如何以簡單的方式將返回的信息附加到自動完成。

jquery文檔不提供一個簡單的方法來執行它的PHP遠程文件。

+0

不是你的問題的答案,但我祈禱你沒有直接使用上面的代碼 - 你沒有逃脫$ nameser這意味着任何人都想來可以說......刪除你的數據庫。 – Erik 2010-12-02 00:12:23

回答

3

如果您搜索了一個月,你有沒有發現什麼必須是某種奇蹟 的搜索2秒發現很多結果

http://www.ajaxdaddy.com/demo-jquery-autocomplete.html

http://www.exploremyblog.com/html/blog_contents.php?blogid=300

http://www.thewhyandthehow.com/jquery-autocomplete/

其中有數百萬 爲您的代碼我會做這樣的事情

$(document).ready(function(){ 
    $("#example").autocomplete("./search.php"); 
    }); 

嘗試

$nameser = $_GET['q']; 

$names = ''; 

$result = mysql_query("SELECT name FROM characters WHERE name LIKE '%".$nameser."%'"); 

while ($row = mysql_fetch_array($result)) { $names .= $row[name]."\n"; } 

echo $names; 
+0

我實際上花了幾分鐘來測試這個(因爲我以前從未使用過這個小部件),上面的答案是完全錯誤的 - 換行符分隔的列表將不起作用 - 它期望json。 – Erik 2010-12-02 00:35:41

0

從未使用過的部件之前,我不得不花幾分鐘的時間與它玩耍。看來你的問題很可能是你沒有以JSON格式返回找到的數據。在一個簡單的測試中,我使用以下作爲我的'search.php':

$ary[] = 'hi'; 
$ary[] = 'there'; 
$ary[] = 'world'; 

$o = json_encode($ary); 
echo $o; 

它的工作完美。

我使用的HTML/Javascript是小部件的示例頁面:http://jqueryui.com/demos/autocomplete/remote.html我下載到我的本地服務器,當然修復了所有包含的庫等的路徑,以便測試它。

相關問題