jQueryUI 自动完成映射响应数据

Posted

技术标签:

【中文标题】jQueryUI 自动完成映射响应数据【英文标题】:jQueryUI autocomplete mapping response data 【发布时间】:2013-01-11 00:36:44 【问题描述】:

关于 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”只是文本区域

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

【问题讨论】:

【参考方案1】:

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

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

data = $.parseJSON(data);

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

【讨论】:

以上是关于jQueryUI 自动完成映射响应数据的主要内容,如果未能解决你的问题,请参考以下文章

jQuery自动完成JSON响应

为啥我的 jqueryUI 自动完成显示在左上角?

使用 JQueryUI 自动完成更新多个字段

JqueryUI 自动完成输入字段

jqueryui自动完成,自定义ajax数据

jqueryui 自动完成过滤器结果(来自远程数据源)“开始于”输入