0

POSTメソッドを使用してajaxを使用していくつかの値をphpファイルに渡します。

phpファイルがàèìのような特別な文字を受け取ると、正しく表示されますが、クエリに入れると、データベースに保存されません。

どこが間違っているの?文字セットをmysqlテーブルに変更しようとしました...しかし何もしませんでした。

これが私のコードです。

Ajaxファイル:

if (window.XMLHttpRequest)
            {
                xmlhttp=new XMLHttpRequest();
            }
            else
            {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }   
            xmlhttp.onreadystatechange=function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                    var response = xmlhttp.responseText;
                    if(response == "error")
                    {
                        post_status.innerHTML = "<font color=\"red\">Si è verificato un errore</font>";
                    }
                    else if(response == "error_tofast")
                    {
                        post_status.innerHTML = "<font color=\"red\">Hai postato un commento meno di un minuto fa, attendi</font>";
                    }
                    else if(response == "posted")
                    {
                        post_status.innerHTML = "<font color=\"green\">Post aggiunto con successo</font>";
                        document.getElementById("newcommenttxt").value = "";
                        document.getElementById("newcommenttxt").rows = 2;
                        document.getElementById("list-comments").innerHTML = '<br><br><br><center><img style="cursor: progress;" width="60px" height="60px" src="./styles/images/loading.gif"></center>';
                        setTimeout("loadGagi()", 1000);
                        document.getElementById("reply_to_title").innerHTML = "";
                        replyto = -1;
                    }
                }
            }
            //xmlhttp.open("GET","./includes/postgagi?userid="+userid+"&replyto="+replyto+"&txt="+edited_comment,true);
            xmlhttp.open("POST","./includes/postgagi",true);
            xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
            xmlhttp.send("userid="+userid+"&replyto="+replyto+"&txt="+edited_comment+"");
4

1 に答える 1

0

クエリを実行する前に、接続エンコーディングを設定します。

mysql_set_charset("utf8");
// or $mysqli->set_charset( "utf8" ); if you are using mysqli
于 2012-12-16T12:18:57.190 に答える