#jquery #autocomplete
#jquery #автозаполнение
Вопрос:
Я пытаюсь использовать простое автозаполнение для списка имен пользователей (~ 500).
- Я вижу, что можно вызвать некоторый файл (например, php, ashx), который содержит запрошенный список. что это за файл? как должен выглядеть список? где я могу найти дополнительные данные?
- Альтернативно (мой предпочтительный выбор) Я могу использовать фиксированный список в: из кода devbridge:
lookup: ['January', 'February', 'March', 'April', 'May']
или из кода jquery-UI:
source: ["c ", "java", "php", "coldfusion", "javascript", "asp", "ruby"]
.но проблема в том, как установить этот массив не жестко — я пробовал:
var arr1 = ['January', 'Jania','February', 'March', 'April', 'May'];
var arr2 = [];
for(var i=0;i<all_analysts.length;i ){
arr[i] = all_analysts[i];
alert(arr[i]);////////
}
lookup: arr2 //local lookup valuesно только при использовании hardcoded:
lookup: ['January', 'February', 'March', 'April', 'May']
это работает.
Не могли бы вы помочь?
Спасибо!
Ответ №1:
Что касается вашего первого вопроса — взгляните на этот пример: http://jqueryui.com/demos/autocomplete/#remote
Как вы можете видеть, если параметр source является строкой, он обрабатывается как URL, на который будет отправлен запрос ajax, чтобы получить список данных, соответствующих введенному пользователем термину. Указанный URL-адрес должен возвращать данные в формате JSON.
Если, например, вы бы установили параметр источника в «/find_users». Как только пользователь введет строку «mo» в поле ввода, виджет автозаполнения отправит ajax-запрос на следующий URL: «/find_users?term=mo». Как только пользователь введет другую букву (скажем, ее «r»), будет сделан другой запрос на url: «/find_users?term=mor».
Обратите внимание на переменную запроса term, которая содержит текущее значение, введенное пользователем на вашей странице.
Что касается второго вопроса — в вашем коде есть опечатка — вы (по непонятной мне причине) помещаете значения из массива all_analysts в переменную arr, а затем устанавливаете arr2 в качестве значения параметра поиска. В вашем примере arr2 является пустым массивом, поэтому автозаполнение работает не так, как ожидалось…