(仍然)坚持使用 Twitter Typeahead

(Still) Stuck with Twitter Typeahead

如果我用

var users_bloodhound = new Bloodhound({
    datumTokenizer: function (datum) {
        return Bloodhound.tokenizers.whitespace(datum.value);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {url:'https://cdn.rawgit.com/twitter/typeahead.js/gh-pages/data/countries.json',
    filter: function (result) {
        return $.map(result, function (username) {
            return {
                name: username
            };
        });
    }
      }
});

json 格式为 ["Andorra","United Arab Emirates","Afghanistan",...]预期,但我无法接收数据 return 由我的 .php 文件编辑

var users_bloodhound = new Bloodhound({
    datumTokenizer: function (datum) {
        return Bloodhound.tokenizers.whitespace(datum.value);
    },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    remote: {url:'./search.php?query=%QUERY',
    wildcard: '%QUERY',
    filter: function (result) {
        return $.map(result, function (username) {
            return {
                name: username
            };
        });
    }
      }
});

(我只更改了远程之后的部分...).php 文件接收输入和日志,例如 ["test01","test02"] 作为对输入 't' 的回答。我的 php 文件的最后两行是:

error_log(json_encode($results));
return json_encode($results);

那么,如何让我的 JS 函数接收 php 文件的 return 值?

而不是 returning json_encode 您是否尝试过 echoing 它,并注释掉错误日志以查看发生了什么?

//error_log(json_encode($results));
echo json_encode($results);