автозаполнение jquery — определение списка

#jquery #autocomplete

#jquery #автозаполнение

Вопрос:

Я пытаюсь использовать простое автозаполнение для списка имен пользователей (~ 500).

  1. Я вижу, что можно вызвать некоторый файл (например, php, ashx), который содержит запрошенный список. что это за файл? как должен выглядеть список? где я могу найти дополнительные данные?
  2. Альтернативно (мой предпочтительный выбор) Я могу использовать фиксированный список в: из кода 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 является пустым массивом, поэтому автозаполнение работает не так, как ожидалось…