Тільки розпочав сьогодні, але у мене масовийПроблеми, що намагаються зрозуміти JSON / AJAX і т. д., я до сих пір дістав свій код, але натрапив на те, як повернути дані, витягнуті запитом AJAX, до функції автоматичного завершення jQuery.
var autocomplete = new function (){
this.init = function() {
$("#insurance_destination").autocomplete({source: lookup});
}
function lookup(){
$.ajax({
url: "scripts/php/autocomplete.php",
data: {query:this.term},
dataType: "json",
cache : false,
success: function(data) {
for(key in data){
return {
label: key,
value: data[key][0]
}
}
}
});
}
}
І приклад рядка JSON, який повертається PHP-скриптом {"Уганда": ["UGA", "UK4", "По всьому світу, крім США, Канади та Карибського басейну"]}
Відповіді:
1 для відповіді № 1Зазвичай вам не доведеться робити запит Ajax самостійно:
$("#insurance_destination").autocomplete("url_here", {options_here});
Це "з припущенням, що ми говоримо про стандартний плагін автозаповнення jquery". Я вас правильно розумію?
редагувати
Перевірте api
http://docs.jquery.com/Plugins/Autocomplete/autocomplete#url_or_dataoptions
Є також кілька прикладів.
0 для відповіді № 2
Це код, який я закінчив, він працює в Chrome і Firefox, але не в IE 6/7 ...
var autocomplete = new function (){
this.init = function() {
$("#insurance_destination").autocomplete({
source: function(request, response) {
debugger;
$.ajax({
url: "scripts/php/autocomplete.php",
dataType: "json",
data: {query:this.term},
success: function(data) {
response($.map(data.countries, function(item) {
return {
label: "<strong>"+item.name+"</strong>"+" "+item.description,
value: item.name,
code : item.region
}
}))
}
})
},
minLength: 2,
select: function(event, ui) {
$("#insurance_iso_code_hidden").val(ui.item.code);
},
open: function() {
},
close: function() {
}
});
}
}