JQuery UI Автозаполнение с использованием статического файла JSON в качестве источника
я используюJQuery-щ-автозаполнение (на самом деле,catcomplete прикреплен к окну поиска). Это работает очень хорошо, пока я использую статический массив элементов в качестве источника.
Из соображений производительности я не хочу, чтобы автозаполнение отправляло запросы Ajax к PHP-скрипту, делая% как% запросов к MySQL. Так,Я сгенерировал файл JSON из БД, содержащий каждый элемент, который может быть найден в поиске (около 20-30 элементов, из многих таблиц SQL). я бы хотелчитать / анализировать файл только один раз, когда страница загружается или когда пользователь начинает вводить в поле поиска.
Я застрял здесь. Я пытался прикрепить Ajax-вызов к .catcomplete () (код ниже). Я также попытался сделать вызов getJSON и создать .catcomplete в его методе success ().Оба способа молча терпят неудачу.
Я новичок в JS / jQuery, мне это уже нравится, но я немного растерялся. Любая помощь / решение / указатель на полезный документ будет принята с благодарностью.
Большое спасибо!
Вот HTML: (очень просто)
<form id="searchform" method="get" role="search">
<input id="searchfield" />
<input type="submit" name="go" value="go!" />
</form>
Вот мой код JS:
$( "#searchfield" ).catcomplete({
delay: 0,
source: function( request, response ) {
$.ajax({
url: "/path/to/cache.json",
dataType: "json",
data: {term: request.term},
success: function(data) {
response($.map(data, function(item) {
return {
label: item.label,
category: item.category,
desc: item.desc
};
}));
}
});
},
minlength:0
});
Пример данных JSON:
[
{ label: "lbl1", category: "cat1", desc: "desc1"},
{ label: "lbl2", category: "cat1", desc: "desc2"},
{ label: "lbl3", category: "cat1"}
]