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']));

これで問題が解決した場合は、JS の encodeURI() 呼び出しと PHP の urldecode() 呼び出しを削除してみてください。(但し、utf8の扱いは必要です。)

于 2013-03-30T20:34:53.563 に答える