关于jQuery自动完成的另一个问题,即使我在这个论坛或jQuery文档上有大量资源,但我遇到了问题。
我很难使用jQuery UI从PHP脚本映射响应数据。这是代码:
$("#shared-with").autocomplete({
source: function(request, response) {
$.ajax({
type: 'get',
url: 'ajax/search.php',
data: { term: request.term },
success: function(data){
// alert(data);
response($.map(data, function(c) {
return {
label: c.name,
value: c.nametag
}
}));
}
});
}
});
我的问题是jQuery自动完成没有正确理解响应/ map函数,尽管从search.php发回的数据如下所示:
echo json_encode(
array('name' => 'Bill', 'nametag' => 'Big Bill'),
array('name' => 'Fred', 'nametag' => 'Small Fred'),
);
PS:当我在javascript弹出窗口中提醒“数据”时显示一个有效的javascript数组/对象... PS:“#shared-with”只是textarea
有什么想法吗?提前谢谢。
答案 0 :(得分:0)
我发现数据实际上是从我的PHP搜索页面返回一个字符串。
我需要做的就是将字符串重新转换为JS数组:
data = $.parseJSON(data);
response($.map(data, function(c) {
return {
label: c.name,
value: c.nametag
}
}));