1

我正在处理一个列表: http ://ranglista.farmeramagame.hu/kereso/search2.php

在 php 文件中,我使用元标记来处理重音符号。但是为了显示结果,我使用了 ajax,如果我在搜索字段中输入重音符号,如 ö、ü、ő 等,它不会显示任何内容。

$(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();
        }
    });

});

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

4

1 回答 1

0

解决方案是在 Ajax 中使用字符串时对字符串进行 URI 编码以 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']));

If this ends up working for you, you can then try removing the encodeURI() call in the JS and the urldecode() call in the PHP. (The utf8 handling is necessary, however.)

于 2013-03-30T20:34:53.563 回答