2009-10-06 33 views
1

我嘗試整合jQuery自動完成插件[1],但沒有爲我工作。在這裏我的代碼:jQuery的問題自動完成

$('#input').autocomplete(function(term) { 
     var searchUrl = urlBase + 'tagging/autocomplete/?term=' + term; 
    $.getJSON(searchUrl, function(jsonData) { 
     test = jsonData; 
      console.log(test); 
     }); 
    }); 

從的console.log輸出看起來像:

[ "EBE", "EBE1", "EBE2"] 

對於輸出我使用的PHP函數json_encode()

echo json_encode ($words); 

誰能告訴我,我的代碼有什麼問題?使用來自插件頁面的虛擬數據正在工作......但不是當我嘗試通過URI檢索數據時。

[1] http://docs.jquery.com/Plugins/Autocomplete

回答

3

你錯誤地傳遞一個函數作爲第一個參數,以autocomplete。該方法的簽名是:

autocomplete(url or data, options); 

和你正在做的:

autocomplete(function(term) { 

取而代之的是,通過你的網址作爲第一個參數,和MOD服務器代碼讀取自動添加「Q」參數(其表示術語或字符串中的約束輸入元件):

$('#input').autocomplete('tagging/autocomplete/', { 
    formatItem: function(data, i, n, value) { 
     return "<font color='#3399CC'>" + value + "</font>"; 
    }, 
    formatResult: function(data,value) { 
     return value; 
    } 
}).result(function(event, data, formatted) { 
    console.log(data); 
}); 

的手冊說:

對於遠程自動填充,請爲提供數據的資源指定一個URL 。 該插件然後用包含當前 搜索值的 「q」參數請求數據。

我從來沒有試過JSON返回到autocompleter(我敢肯定,你可以),但上述假設從服務器返回的數據是由一個換行符"\n"(自動完成轉換成那些LIS)分離。

+0

太棒了!適用於mit參數q ...;) – cupakob