jQueryUI自动完成映射响应数据

时间:2013-01-27 15:48:57

标签: php jquery-ui jquery-ui-autocomplete

关于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

有什么想法吗?提前谢谢。

1 个答案:

答案 0 :(得分:0)

我发现数据实际上是从我的PHP搜索页面返回一个字符串。

我需要做的就是将字符串重新转换为JS数组:

data = $.parseJSON(data);

response($.map(data, function(c) {
             return {
                 label: c.name,
                 value: c.nametag
             }
}));