1

另一个关于 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 自动完成没有正确理解 response/map 函数,尽管从 search.php 发回的数据看起来像:

echo json_encode(
     array('name' => 'Bill', 'nametag' => 'Big Bill'),
     array('name' => 'Fred', 'nametag' => 'Small Fred'),
);

PS:当我在 javascript 弹出窗口中提醒“数据”时,向我显示一个有效的 javascript 数组/对象... PS:“#shared-with”只是文本区域

任何想法 ?提前致谢。

4

1 回答 1

1

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

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

data = $.parseJSON(data);

response($.map(data, function(c) {
             return {
                 label: c.name,
                 value: c.nametag
             }
}));
于 2013-01-27T16:05:21.980 回答