Jquery建议从JSON数组中搜索?

时间:2012-10-03 22:19:20

标签: jquery json jquery-ui

我有一个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需要Label和Value。当我的数组从数据库中提取时,如何让AutoComplete认为每个项目的标签都包含Manufacturer + Model?

2 个答案:

答案 0 :(得分: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]

标记了这个问题

答案 1 :(得分: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 }
                        }))
                    }
                })
            },