如何在ajax中使用重音来从数据库中读取数据

时间:2013-03-29 23:33:38

标签: php javascript html ajax search

我正在制作一份清单: http://ranglista.farmeramagame.hu/kereso/search2.php

在php文件中,我使用meta标签来处理重音。但为了显示结果,我使用了ajax,如果我在搜索字段中编写acce,ü,ő等重音符号,它就不会显示任何内容。

$(document).ready(function(){
    var left = $('#box').position().left;
    var top = $('#box').position().top;

    $('#search_box').keyup(function(){
        var value = $(this).val();

        if(value !=''){

        $('#search_result').show();
            $.post('search3.php',{value: value},function(data){
                $('#search_result').html(data);

            });

        } else{
        $('#search_result').hide();
        }
    });

});

是否有可能以某种方式使其与重音一起使用?

1 个答案:

答案 0 :(得分:0)

解决方案是对字符串进行URI编码,当它在Ajax中用于POST以进行字符串结束时。

在JS中,添加encodeURI(只是为了安全):

$.post('search3.php',{value: encodeURI(value)},function(data){
    $('#search_result').html(data);
});

在PHP中,你需要urldecode()已编码的字符串,看起来字符串是utf8编码的。

因此,您需要在PHP中执行:

$value = utf8_decode(urldecode($_POST['value']));

如果这最终为你工作,你可以尝试删除JS中的encodeURI()调用和PHP中的urldecode()调用。 (然而,utf8处理是必要的。)