【问题标题】:jQueryUI autocomplete mapping response datajQueryUI 自动完成映射响应数据
【发布时间】: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”只是文本区域

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多