我使用Jquery autocomplete并且我有以下代码:
客户方:
$( "#tags" ).autocomplete({
source: function(request, response) {
$.ajax({
url: "get_professionals",
data: request,
dataType: "json",
type: "POST",
success: function(data){
alert("hello");
}
});
}
});
服务器端:
function get_professionals() {
if ($_POST["term"]):
$professionals = Professional::find('all', array('conditions' => "name LIKE '%" . $_POST["term"] . "%'"));
foreach ($professionals as $professional):
echo $professional->to_json();
endforeach;
endif;
}
网址是对的,事实上,我从服务器获取结果(我在Firebug中检查了#34;帖子"标签)但没有显示
答案 0 :(得分:1)
The autocomplete requires a label
and/or value
field to be returned in the data.
数组:数组可用于本地数据。有两种支持的格式:
字符串数组:[“Choice1”,“Choice2”]
具有标签和值属性的对象数组:[{label:“Choice1”,value:“value1”},...]
标签属性显示在建议菜单中。当用户选择项目时,该值将插入到input元素中。如果仅指定了一个属性,则它将用于两者,例如,如果仅提供值属性,则该值也将用作标签。
调整查询以在value
和/或label
字段中的自动填充中返回您想要的内容。
SELECT name AS label, id AS value from professionals.....
或者,返回值的其他一些方法,如上面的文档中的粗体示例。例如,您可以在成功函数中设置label
和value
字段:
success: function(data) {
response($.map(data, function(item) {
return {
label: item.name,
id: item.id
};
}));
}