【问题标题】:(Still) Stuck with Twitter Typeahead(仍然)卡在 Twitter Typeahead 上
【发布时间】:2016-05-26 19:25:59
【问题描述】:

如果我使用

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",...] 它按预期工作,但我无法接收返回的数据通过我的 .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 文件的返回值呢?

【问题讨论】:

    标签: javascript php remote-access twitter-typeahead


    【解决方案1】:

    你试过echoing而不是returningjson_encode,并注释掉错误日志看看会发生什么?

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

    【讨论】:

    • 没问题。尽管可以创建更深入的答案,但为了将来参考,php 对客户端 (ajax) 没有任何作用。 Ajax 只是撤回了在 php 页面上显示的内容,所以如果没有显示任何内容(即 echoed),ajax 也不会看到它。
    猜你喜欢
    • 1970-01-01
    • 2017-07-10
    • 1970-01-01
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-03
    • 2015-01-21
    相关资源
    最近更新 更多