Автозаполнение с несколькими источниками (асинхронные запросы) - PullRequest
0 голосов
/ 20 апреля 2011

Я пытаюсь использовать автозаполнение на основе нескольких источников. Например. поиск в графе фейсбук и мой собственный дб. Понятно, что поиск в фейсбуке не такой быстрый, как у меня. Вот почему я хочу запускать несколько запросов ajax для каждого вызова (каждый источник => отдельный контроллер).

После события «success» запроса я хочу немедленно добавить результаты автозаполнения полей, без каких-либо дополнительных действий, таких как ввод новой буквы.

P.S. JQuery UI Autocomplete помогает не сильно. Потому что:

  1. Addind изображения для результатов поиска - это плагин.
  2. Можно установить некоторые массив для результатов поиска и добавить в Результаты автозаполнения, но Увижу новые результаты после ввода новое письмо.

P.P.S В качестве результатов поиска мне нужно изображение, имя, 2-3 дополнительных параметра.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2011

Запустите несколько тестовых поисков в Facebook, прежде чем заходить слишком далеко.Поиск в API api не возвращает результаты, которые вы получили бы, если бы использовали само поле автозаполнения в самом Facebook.Он настроен на поиск, где присутствует поисковый запрос.Я создал автозаполнение, как вы описали один раз, и результаты не стоили того.

Мне бы понравилось, если бы они сделали автозаполнение доступным.

0 голосов
/ 21 апреля 2011

Оба варианта 1 и 2 возможны с виджетом автозаполнения jQueryUI.

  1. Вы можете настроить отображение элементов в виджете, переопределив метод _renderItem, как в в этом примере :

    $("#autocomplete").autocomplete({...})
        .data("autocomplete")._renderItem = function( ul, item ) {
            return $("<li></li>")
                .data( "item.autocomplete", item )
                .append("<a>" + item.label + "<br>" + item.desc + "</a>")
                .appendTo(ul);
        };
    
  2. Вы можете запустить метод автозаполнения search, используя api автозаполнения:

    $("#autocomplete").autocomplete("search", "foo");
    

Надеюсь, это поможет! Автозаполнение - это удивительно надежный виджет, и в StackOverflow есть множество вопросов, которые могут помочь, если вы столкнетесь с какими-либо другими проблемами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...