将MySQL中的希腊字符返回给Javascript

时间:2014-04-28 13:17:39

标签: php jquery mysql ajax

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

  • 10 ng
  • 100 ng
  • 1μg

最后一个给我带来麻烦,因为它包含一个希腊字符。当我输入'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

1 个答案:

答案 0 :(得分:0)

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

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