私がやりたいことは、jQueryUI の関数を介してオートコンプリートを使用して結果を分類することです。いくつかのグーグル検索などの後、組み込み関数 (http://jqueryui.com/demos/autocomplete/#categories) があることがわかりましたが、この例はローカル データ ソース (JavaScript の配列) のみを対象としています。リモート データ ソースを扱っています。オートコンプリート側は、カテゴリ コードを追加しなくても正常に機能しますが、追加すると壊れます。
これは、php コード (json データを返す検索ページ) に問題がないことを意味します。
このコードは jQueryUI サイトから取得しました。
$.widget( "custom.catcomplete", $.ui.autocomplete, {
_renderMenu: function( ul, items ) {
var self = this,
currentCategory = "";
$.each( items, function( index, item ) {
if ( item.category != currentCategory ) {
ul.append( "<li class='ui-autocomplete-category'>" + item.category + "</li>" );
currentCategory = item.category;
}
self._renderItem( ul, item );
});
次に、それを検索側と組み合わせました(カテゴリに変更):
$(function() {
$( "#search" ).catcomplete({
delay:0,
source: "query/encode-json.php?term="+ $("#search").val(),
select: function(event, ui){
alert(ui.item.label);
}
});
});
しかし、それは機能しません:(私はたくさんグーグルで検索しましたが、他の誰もがjson側に問題を抱えていました.これが私のjsonデータです:
[{"value":"some dude","id":"1","category":"artist"},{"value":"some other dude","id":"2","category":"artist"}]