Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
ผมลองทำระบบค้นหาข้อมูลโดยใช้ Ajax ช่วยนะครับ
ทดลองกับฐานข้อมูลไม่ใหญ่มาก จะใช้เหตุการณ์ KeyUP นะครับ
คือเมื่อพิมพ์ข้อความที่ต้องการค้นหาลงในเท็กซ์ ระบบก็จะทำการประมวลผลข้อมูลที่เกี่ยวข้องออกมาเลยในทันที
ภาษาอังกฤษ และตัวเลขนั้น ไม่มีปัญหาครับ ลองเคาะเว้นช่องว่าง ก็ได้เช่นกัน
แต่ปัญหาก็คือ ทอสอบกับภาษาไทยแล้วมันไม่ได้ครับ
โค้ดของฟอร์มที่ใช้ค้นหา *************************
<form action="" name="frm1">
<input name="txtDream" type="text" size="30" onKeyUp="select_Dream();return false;">
</form>
โค้ดในส่วนของ Ajax ครับ *******************
function select_Dream(){
var result;
var strTxt=document.frm1.txtDream.value;
var url = 'Dream.php?value1=' +strTxt ;
//alert(url);
xmlhttp = uzXmlHttp();
xmlhttp.open("POST", url, false);
xmlhttp.send(null);
document.getElementById('result').innerHTML = xmlhttp.responseText;
โค้ดส่วนของไฟล์ php ครับ *************
$sql="SELECT * FROM dream Where Mean like '%".$value1."%'";
งมมาหลายวันแล้วครับ ใช้ฟังก์ชั่นต่าง ๆ นา ๆ ช่วยในการส่ง และรับ แต่ก็ยังไม่ได้อยู่ดี
ยังไงก็รบกวนด้วยนะครับ ไม่รู้จะไปพึ่งใครแล้ว
ขอบคุณล่วงหน้าครับ
ทดลองกับฐานข้อมูลไม่ใหญ่มาก จะใช้เหตุการณ์ KeyUP นะครับ
คือเมื่อพิมพ์ข้อความที่ต้องการค้นหาลงในเท็กซ์ ระบบก็จะทำการประมวลผลข้อมูลที่เกี่ยวข้องออกมาเลยในทันที
ภาษาอังกฤษ และตัวเลขนั้น ไม่มีปัญหาครับ ลองเคาะเว้นช่องว่าง ก็ได้เช่นกัน
แต่ปัญหาก็คือ ทอสอบกับภาษาไทยแล้วมันไม่ได้ครับ
โค้ดของฟอร์มที่ใช้ค้นหา *************************
<form action="" name="frm1">
<input name="txtDream" type="text" size="30" onKeyUp="select_Dream();return false;">
</form>
โค้ดในส่วนของ Ajax ครับ *******************
function select_Dream(){
var result;
var strTxt=document.frm1.txtDream.value;
var url = 'Dream.php?value1=' +strTxt ;
//alert(url);
xmlhttp = uzXmlHttp();
xmlhttp.open("POST", url, false);
xmlhttp.send(null);
document.getElementById('result').innerHTML = xmlhttp.responseText;
โค้ดส่วนของไฟล์ php ครับ *************
$sql="SELECT * FROM dream Where Mean like '%".$value1."%'";
งมมาหลายวันแล้วครับ ใช้ฟังก์ชั่นต่าง ๆ นา ๆ ช่วยในการส่ง และรับ แต่ก็ยังไม่ได้อยู่ดี
ยังไงก็รบกวนด้วยนะครับ ไม่รู้จะไปพึ่งใครแล้ว
ขอบคุณล่วงหน้าครับ
ตอนแรกลอง echo ข้อมูลที่อยู่ใน txtDream ดูก่อนว่าถ้าพิมพ์เป็นภาษาไทยแล้วมันจะออกมาเป็นตัวแบบใหน....
Ajax ทำงานได้ดีกับ UTF-8 เพราะฉะนั้นลองดูทุกจุดที่เกี่ยวข้อง โดยเฉพาะรูปแบบในการเซฟไฟล์ก็ต้องเป็น UTF-8 ด้วย
แต่ทำไมมันถึง Select ข้อมูลมาไม่ได้ ไม่เจอ
อย่างแรก ทดสอบว่า สามารถส่ง และรับ ค่าภาษาไทยกลับมาแสดงผล ได้อย่างถูกต้อง หรือเปล่า
อันดับสอง ลองเรียกหน้าค้นหาดู (php) แล้วดูว่าผลลัพท์ เป็นไปตามที่ต้องการหรือไม่
ถ้าทั้ง 2 กรณีสามารถทำงานได้ ที่ผิดมักจะแยู่กับ ภาษา หรือ cache ครับ
คำตอบของทุกปัญหามีอยู่บนเว็บนี้ครับ ลองค้นหาดูครับ