A-AA+then

ใช้ ajax add ข้อมูล ภาษาไทยไม่ได้

2,386
ทำไมเวลา add ข้อมูลที่เป็นภาษาไทย
จากหน้า form ลงฐานข้อมูล
แล้วมันเป็นช่องว่างๆ___________แบบนี้อะครับ
แต่ถ้า add เป็นภาษาอังกฤษ ก็ไม่มีปัญหาอะไรครับ แก้ไขยังไงดีครับ

อีกอย่าง ทำไมมันรันได้แต่ IE
firefox มันรันไม่ได้อะ ไม่ทำงานเลย

ทุกไฟล์เข้ารหัสแบบ utf-8 และฐานข้อมูลก็เป็น utf-8

<html>
<head>
<title> Register </title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script language="javascript">
function insertmysql()
{
    var objRequest = createRequestObject();
    function createRequestObject() {
      var objTemp = false;

      if (window.XMLHttpRequest) {
        objTemp = new XMLHttpRequest();
      } else {
        objTemp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      return objTemp;
    }

        var user=document.getElementById("register").username.value;
        var password1=document.getElementById("register").password1.value;
        var password2=document.getElementById("register").password2.value;
        var name_th=document.getElementById("register").name_th.value;
        var sur_th=document.getElementById("register").sur_th.value;
        var tel=document.getElementById("register").tel.value;
       
        var str=Math.random()//แก้ปัญหา catch
        var querystr="";
        querystr+="insertmysql.php?pop="+str;
        querystr+="&user="+user;
        querystr+="&password="+password1;
        querystr+="&name_th="+name_th;
        querystr+="&sur_th="+sur_th;
        querystr+="&tel="+tel;
        alert(querystr);

         if (objRequest) {
        objRequest.open("GET",querystr);
        objRequest.onreadystatechange = handleResponse;
        objRequest.send(null);
      }
       
        function handleResponse() {
      if (objRequest.readyState == 4 && objRequest.status == 200) {
        alert("ลงทะเบียนเรียบร้อยแล้ว");
      }   
     }
}//จบฟังชั่น
  </script>

</head>
<body>
<h1>Register</h1>
<form name="register" id="register">
Username : <input type="text" name="username" id="username"><br/>
Password : <input type="password" name="password1" id="password1"><br/>
Re-password : <input type="password" name="password2" id="password2"><br/>
Name : <input type="text" name="name_th" id="name_th"><br/>
Last name : <input type="text" name="sur_th" id="sur_th"><br/>
Telephone : <input type="text" name="tel" id="tel"><br/>
<input type="submit" value="ลงทะเบียน" onclick="insertmysql();">
</form>
</body>
</html>


อันนี้ไฟล์ php

<?
$user=$_GET["user"];
$password=$_GET["password"];
$name_th=$_GET["name_th"];
$sur_th=$_GET["sur_th"];
$tel=$_GET["tel"];

$host="localhost";
$user_n="root";
$pass="";
$db="db_mua";
$conn=mysql_connect($host,$user_n,$pass);
if(!$conn) {
    echo "<h2>ไม่สามารถติดต่อฐานข้อมูลได้</h2>";
    exit();
}
mysql_select_db($db);
mysql_query("SET NAMES utf8",$conn);
mysql_query("SET character_set_results=utf8");
mysql_query("SET character_set_client=utf8");
mysql_query("SET character_set_connection=utf8");
mysql_query("SET collation_connection = @@collation_database");

$sql="insert into profile values('','$user','$password','$name_th','$sur_th','$tel','')";
mysql_query($sql,$conn);
mysql_close($conn);

?>

6 ความคิดเห็น

ลองตรวจสอบ $sql ก่อนการ query ว่าถูกต้องมั้ย
1

ถูกต้องแล้วครับ
2

กรรมถ้า query มันถูกต้องแล้ว ที่ผิดมันก็อยู่ที่ sql นี่แหละ ไม่ได้เกี่ยวกับ ajax หรอก ให้ลองเอา query ไปทดสอบบน phpmyadmin ดู
3

ได้แล้วครับ

$sql="insert into profile values('','$user','$password','$name_th','$sur_th','$tel','')";
mysql_query("SET NAMES 'tis620'");<---------เพิ่มตรงนี้
mysql_query($sql,$conn);
mysql_close($conn);
4

แต่ งง ว่าทำไมเปิดใน firefox มันรันไม่ได้ มันไม่ add ข้อมูลลง mysql
5

ได้แล้ววว
objRequest.open("GET",querystr,true);//ใส่ true
6
^