php - 将希腊字符从 MySQL 返回到 Javascript

标签 php jquery mysql ajax

我正在尝试创建一个使用 JQuery 自动完成功能从 MySQL 表获取值的表单。我对 Javascript 和 AJAX 还很陌生,但我已经让它可以工作了。当我在输入字段中输入 1 个字母时,我会得到一个下拉列表,其中包含表中的匹配值。这适用于普通字符(a-z、1-9)。但是,我还有一个包含以下值的表:

  • 10 纳克
  • 100 纳克
  • 1 微克

最后一个给我带来了问题,因为它包含希腊字符。当我输入“1”时,它应该返回下拉菜单中的所有 3 个值。相反,它不会返回任何内容。当我输入“10”时,它会按预期返回前 2 个值。如果我尝试输入“g”和“ng”,也会出现同样的情况...

这是我的 Javascript 代码:

$(function() {
    $(".ajax_getid_").each(function () {
        (function ($this) {
            $this.autocomplete({
                response: function(event, ui) {
                    try {
                        if (ui.content.length === 0) {
                            $("#"+event.target.id+"-empty-message").text("No results found");
                        } else {
                            $("#"+event.target.id+"-empty-message").empty();
                        }
                    } catch(err) {
                        error = "Error 1: "+err.message;
                        alert(error);
                    }
                },

                source: function(request, response) {
                    try {
                        $.ajax({
                            url: "list_"+$this.attr('id')+".php",
                            dataType: "json",
                            data: {
                                term : request.term
                            },
                            success: function(data) {
                                response(data);
                                console.log(data);
                            }
                        });
                    } catch(err) {
                        error = "Error 2: "+err.message;
                        alert(error);
                    }
                },
                minlength: 1
            });
        })($(this));
    });
});

在四处搜索时,我发现了一些有关数据库响应编码的信息。但由于正常字符返回没有任何问题,我不确定这是否是问题所在。如果是的话,我不知道如何解决它。

编辑:
如果我尝试在一个简单的 html 表中可视化 MySQL 表,这也没有问题......
当我尝试将响应打印到控制台 (Google Chrome) 时,出现以下错误:Uncaught TypeError: Cannot read property 'label' of null

最佳答案

尝试对您的请求进行编码(请参阅:When are you supposed to use escape instead of encodeURI / encodeURIComponent?)。所以..

...
dataType: "json",
    data: {
        term : encodeURI(request.term)
    },
....

关于php - 将希腊字符从 MySQL 返回到 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23342186/

相关文章:

php - 我们可以将回显文本存储在 PHP 的变量中吗?

php - 从sql php获取所有数据

php - 如何根据php mysql中的id更新一行的总和

php - 从逗号分隔列表生成一组 HTML 列表项? PHP

php - 从同一类中的另一个静态函数调用静态函数时出现 SQL 查询问题

php - 为什么在编译 PHP 扩展 DLL 时会出现 LNK2005 错误

javascript - 在 Ajax 调用的 $.post 简写上切换加载程序

javascript - 检测移动浏览器捏缩放

javascript - 当正文具有使用 Fullpage.js 的类时隐藏或显示元素

mysql - 为什么查询给出结果而 destCurrency 不为 0 -