0

JSON配列を取得しました

json_encode($results);

と検索ボックス

<form method="post" action="" name="search_form">
<span class="search-text">
<input class="box" name="search" type="text" id="search_input" />
</form>

私がやりたいことは、ユーザーが検索ボックスに入力してエントリを提案するときに JSON 配列を検索することです。配列の一部は次のとおりです。

[{"Device_ID":"43","Image":"Amazon-Kindle-Fire.png","Manufacturer":"Amazon","Model":"Kindle Fire","Type":"Tablet"},{"Device_ID":"44","Image":"Apple-iPad.png","Manufacturer":"Apple","Model":"iPad","Type":"Tablet"}

問題は、オートコンプリートがラベルと値を必要とすることです。私の配列はデータベースから取得されるので、AutoComplete に各アイテムのラベルがメーカー + モデルで構成されていると認識させるにはどうすればよいですか?

4

2 に答える 2

1

$.autocomplete製造元とモデルの配列を に提供する必要がある場合はsource、次を使用します。

$(document).ready(function(){
    var devices = <?= json_encode($results); ?>;
    var results = [];
    $.each(devices, function(k,v){
        results.push(v.Manufacturer + " " + v.Model);  
    }); 
    $("#search_input").autocomplete({source: results});
});

それでおしまい。以前の複雑さについて申し訳ありません。基本的には独自のオートコンプリートを作成していましたが、jQuery UI に組み込まれているものを使用しようとしていることに気づきませんでした。質問に [jquery-ui] のタグを付けました

于 2012-10-04T04:27:41.060 に答える
0

同様の要件がありましたが、ここに作業コードがあります ( /Member/SearchMember は、一致するメンバーの JSON 配列を返すページです:

$("#name-list").autocomplete({

            source: function (request, response) {

                var searchBy = $('#searchBy').val();

                $.ajax({

                    url: "/Member/SearchMember", type: "POST", dataType: "json",

                    data: { searchText: request.term, searchBy: searchBy, maxResults: 10 },
                    success: function (data) {
                        response($.map(data, function (item) {

                            return { label: item.FirstName + " , "+ item.Email , value: item.MemberId }
                        }))
                    }
                })
            },
于 2012-10-04T04:41:58.513 に答える