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,但我认为这样更容易.

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...