我有一个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?
答案 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 }
}))
}
})
},