【问题标题】:jquery autocomplete not returning results with éjquery自动完成不返回带有é的结果
【发布时间】:2012-07-09 10:58:58
【问题描述】:

我很难使用 JQquery 自动完成脚本。它工作正常,直到我在搜索查询中使用非 UTF8 字符执行搜索。

例如:搜索查询“test”成功返回“test”、“test é”等结果 但是当我将 é 添加到搜索查询时,它不再提供任何结果:(查询“test é”不返回任何结果)。

当我调用执行查询并将结果作为 json 数组返回的 php 脚本时,它确实向我显示了正确的输出:"[{"id":"1230","value":"测试 \u00e9"}]",它只是在 HTML 页面上不再给出带有结果的下拉列表。

非常感谢您对此提出任何建议。

沃尔特

【问题讨论】:

  • 浏览器的错误控制台有消息吗?
  • @walter81 header("Content-Type:application/json; charset=UTF-8"); 您是否将 html 内容类型元标记设置为 utf8 ?和 php 标头内容类型为 utf8?,如果不尝试两者,您也可以更好地描述问题,您的意思是列表不显示吗?也看看这个答案stackoverflow.com/questions/2127124/…希望这会有所帮助:)
  • 我已经添加了两个标题,但没有结果。是的,我的意思是该列表没有显示。它在我输入“test”时显示所有结果,但在我将 é 添加到搜索字符串时停止(“test é”根本不显示列表)。我已经检查了该链接,但这似乎是另一个问题。

标签: jquery utf-8 character-encoding jquery-autocomplete


【解决方案1】:

我——终于——找到了。而且,像往常一样,这很简单:

在我调用 JSON 脚本的 javascript 部分中,我将 "q: escape(request.term)" 替换为 "q: encodeURI(request.term) ”。这解决了我的问题!

$("#field")
.autocomplete({
    source: function( request, response ) {
        $.getJSON("./ajax/json_search.php", {
            object_type: "artists",
            q: encodeURI(request.term)
            }, response);
        }
})

【讨论】:

    猜你喜欢
    • 2014-07-22
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    • 2013-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多