В категории автозаполнения jQuery UI выбираются только результаты во всех категориях.Jquery

Программирование на jquery
Anonymous
В категории автозаполнения jQuery UI выбираются только результаты во всех категориях.

Сообщение Anonymous »

Я использовал демонстрационный исходный код автозаполнения jQuery UI для примера категорий (http://jqueryui.com/autocomplete/#categories), и он работает (запрос к базе данных, которая возвращает массив JSON).

Я создаю функцию поиска для художественной галереи, и мои категории — «Художники» и «Выставки». Я хочу показать результаты из одной или обеих категорий. Моя проблема в том, что результаты отображаются только тогда, когда поисковый запрос охватывает результат в обеих категориях.

Мой сценарий предложений использует поисковый запрос для запроса двух разных таблиц базы данных. Я форматирую и добавляю результаты в один массив JSON со строками для ["id"], ["value"], ["label"] и ["category"].

Итак, по поисковому запросу CORN результаты могут быть следующими:

Код: Выделить всё

  { label: "Christopher Corner", category: "Artists" },
{ label: "New Pictures From Cornwall", category: "Exhibitions" },
{ label: "Cornie Collins", category: "Artists" },
В тот момент, когда я ввожу поисковый запрос, возможные результаты отображаются только в том случае, если результат возможен во ВСЕХ моих категориях, а не в том, что я хочу, что один или несколько. Поэтому, когда я набираю CORN, я вижу Художника по имени Корнер и Выставку о Корнуолле, но как только я набираю E от CORNE, все варианты исчезают, включая Художника по имени Корнер (который, как я ожидаю, останется) .

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

Я отредактировал и добавил свой код. Это файл внутренних предложений — search_suggestions.php:
А вот JS в моем разделе, который все настраивает:

Код: Выделить всё

    
.ui-autocomplete-category {
font-weight: bold;
padding: .2em .4em;
margin: .8em 0 .2em;
line-height: 1.5;
}


$.widget( "custom.catcomplete", $.ui.autocomplete, {
_create: function() {
this._super();
this.widget().menu( "option", "items", "> :not(.ui-autocomplete-category)" );
},
_renderMenu: function( ul, items ) {
var that = this,
currentCategory = "";
$.each( items, function( index, item) {
var li;
if ( item.category != currentCategory ) {
ul.append( "[*]" + item.category + "" );
currentCategory = item.category;
}
li = that._renderItemData( ul, item );
if ( item.category ) {
li.attr( "aria-label", item.category + " : " + item.label );
}
});
}
});


$(function() {
$( "#searchInput" ).catcomplete({
minLength: 2,
source:'search_suggestions.php'
});
});

Наконец, это фактическое поле ввода на странице:
Извините, если слишком много кода!

Подробнее здесь: https://stackoverflow.com/questions/318 ... categories

Вернуться в «Jquery»