我一直堅持jQuery自動完成的實現。我使用本教程:http://1300grams.com/2009/08/17/jquery-autocomplete-with-json-jsonp-support-and-overriding-the-default-search-parameter-q/jQuery自動完成不會顯示來自PHP的JSON響應
我jQuery代碼是這樣的:
$("#quickSearchQuery").autocomplete("http://mydomain.net/json.php", {
dataType: 'json',
selectFirst: true,
minChars: 2,
max: 8,
parse: function(data) {
var rows = new Array();
data = data.members;
for(var i = 0; i < data.length; i++) {
rows[i] = { id : data[i].id, name : data[i].name, location : data[i].location };
}
return rows;
},
formatItem: function(row, i, n) {
return row.name + ' (' + row.location + ')';
}
});
到http://mydomain.net/json.php?q=Alb呼叫產生這樣的JSON響應:
{"query":"Alb","members":[{"id":"1","name":"Peter Albert","location":"New York"},{"id":"4","name":"Adalbert Smith","location":"Alabama"},{"id":"42","name":"Albert Einstein","location":"Vienna"}]}
我的問題是:它只是沒有按沒有工作。自動完成不會出現,不會創建任何元素。 如果我從教程運行代碼,一切都很好,我會得到自動完成的城市列表。但即使我只更改源URI並從data.geonames
更改爲data.members
(依此類推),自動完成程序將停止工作。
我已經試過什麼:
- 我改變
dataType
到JSONP和JSON,但JSONP創建的JSON文件 - 我修改了PHP的 '無效的標籤' 錯誤腳本的內容類型與
header("Content-Type: application/json");
- 我試過所有其他Autocompleters,但沒有任何變化
- 我嘗試了所有修復,我從堆棧溢出和網絡教程中找到答案
- 我將geonames.org中的JSON響應複製到文件中,並將其上傳到我的服務器,並將此硬編碼響應用作查找源。仍呈現:(
沒有autocompleter也許你有一個想法?
謝謝! 喬
你用什麼域名來調用http://mydomain.com? – genesis
你有任何控制檯錯誤? – calumbrodie
不,沒有JavaScript錯誤。我目前從localhost運行腳本。 – Joe