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's提供 Manufacturer 和 Model 的数组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 回答