微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Twitter Typeahead Ajax结果未定义

我正在建立一个使用twitter typeahead的自动完成功能,使用对我的PHP文件的ajax JSON调用获取一些数据,但它会在下拉结果列表中显示以下内容

未定义

未定义

未定义

但当我这样做时:

alert(data); 

我得到了正确的数据显示,但不知何故自动完成列表一直显示未定义,香港专业教育学院阅读并尝试了一些文章在stackoverflow上的一些文章,但我似乎无法让它工作.

我必须遵循jquery代码

      $('.item-name .typeahead').typeahead(null,{
      source: function (query, process) {
        $.ajax({
          url: 'ajaxItems.PHP',
          type: 'POST',
          dataType: 'JSON',
          data: 'query=' + query,
          success: function(data) {
            // alert(data);
            process(data);
          }
        });
      }
    });

我的ajaxItems.PHP具有以下用于测试目的的代码

<?PHP
$results = array();

$results[] = 'jeans';
$results[] = 'sweater';

$json =  json_encode($results);
print_r($json);
?>

JSON输出如下:

["jeans","sweater"]

我希望有人可以对我做错的事情发表一些看法,或者指出我正确的方向.提前致谢!

编辑
我使用以下typeahead文件
http://twitter.github.io/typeahead.js/releases/latest/typeahead.bundle.js

解决方法:

我使用source时遇到了类似的问题:我最终使用了remote:
在你的情况下,它会是这样的:

$('.item-name .typeahead').typeahead({
    remote: 'ajaxItems.PHP?query=%QUERY'
  });

请注意,我在typeahead上删除了null(null,{因为我认为没有必要,但我可能错了.显然,你必须使用$_GET而不是$_POST,但我认为这样更容易.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐