AJAX Автозаполнение запроса из таблицы MYSQL - PullRequest
0 голосов
/ 14 июля 2009

Я хотел реализовать функцию автозаполнения на основе ajax для своего окна поиска, и я наткнулся на , реализующую автозаполнение на моем сайте .

Теперь я хотел бы знать, что я присоединяю источник данных к элементу управления, но до сих пор я видел, что для источника данных требуется схема текстовой базы, не могу ли он мне понравиться в запросе, когда элемент управления вызывает запрос и он возвращает записи, к которым должен применяться фильтр элемента управления.

Надеюсь, мой вопрос ясен

1 Ответ

1 голос
/ 14 июля 2009

Как вы думаете, вы можете связать его с запросом на стороне клиента ?? Вы можете связать его с вызовом AJAX на сервере, который возвращает список опций. Фильтр элемента управления выполнит остальную фильтрацию этого списка параметров.

Рекомендуется запускать AJAX при загрузке страницы для серверной функции, которая будет запрашивать базу данных (в вашем случае MySQL) и извлекать список опций в JSON формат. Присвойте список опций как вход для автозаполнения. (Очевидно, это лучше, чем запускать ajax-запрос каждый раз, когда пользователь начинает вводить в поле поиска.)

Если вы используете jquery, это может быть что-то вроде этого.

$(function(){  //runs on page load

$.ajax({
  type: "POST",
  url: "/searchlist/", //server function that returns the search list
  data: '',
  dataType: "json",
  success: function(json){
    search_choices = json.list; // search option list
    $("input#searchbox").autocomplete(search_choices, {
                               max: 4,
                               scroll: false,
                               autoFill: true,
                               multiple: true,
                               matchContains: true,
                               multipleSeparator: " ",
                               width: 180
                             });

  }
});

});

Я могу предоставить вам пример в других библиотеках, кроме jquery, но я надеюсь, что это поможет вам найти свой путь.

Редактировать: Нет, ваша база данных не должна иметь сортированных вариантов. Это ваша серверная функция, которая должна выполнять всю сортировку. Использование,

autocomplete( url_to_server_function, options)

и ваша серверная функция получит поисковый запрос (ключевые слова в поисковой строке) в качестве запроса на получение. Фильтруйте свою базу данных там, и это место, где вы можете связать связанные слова вместе с результатами. Просто составьте список всего, что вы хотите показать как предложение, и верните его в сериализованном формате json и позвольте autocomplete позаботиться о сопоставлении и сортировке данных.

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