:wanwan044: :wanwan044: :wanwan016: :wanwan016: :wanwan016: :wanwan005: :wanwan005: :wanwan005:
ผมลองทำระบบค้นหาข้อมูลโดยใช้ 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."%'";
งมมาหลายวันแล้วครับ ใช้ฟังก์ชั่นต่าง ๆ นา ๆ ช่วยในการส่ง และรับ แต่ก็ยังไม่ได้อยู่ดี
ยังไงก็รบกวนด้วยนะครับ ไม่รู้จะไปพึ่งใครแล้ว
ขอบคุณล่วงหน้าครับ
น่าจะเป็น collection ในตาราง + ต้องมี mysql_query("SET NAMES UTF8") ตอนเปิด connection
เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)
ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)
อ้างถึงจาก: Luscentz ใน 08 มกราคม 2010, 12:56:29
ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)
ตามโค้ดเลยครับ ผมก็หาตัวแปลงหลายอย่างแล้ว แต่...........ไม่รู้ว่ามันติดอะไรตรงไหน
มีโค้ด ขอโค้ดเลยนะครับ........... :P :P :P
ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File
อ้างถึงจาก: Rapid-Developer ใน 08 มกราคม 2010, 14:39:41
ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File
ขอบคุณครับ ขอลองดูก่อนนะครับ แล้วจะมารายงานผลให้ได้ทราบ
:'( :'( :'(
อ้างถึงจาก: nay-banana ใน 08 มกราคม 2010, 14:53:21
อ้างถึงจาก: Rapid-Developer ใน 08 มกราคม 2010, 14:39:41
ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File
ขอบคุณครับ ขอลองดูก่อนนะครับ แล้วจะมารายงานผลให้ได้ทราบ
:'( :'( :'(
ว่าแต่วิธีดู ว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่านั้น ดูตรงไหน อย่างไรหรอครับ
แล้วถ้ามันไม่เป็นตามนี้ ต้องเซ็ตค่ามันอย่างไรครับ
อ้างถึงจาก: Dr.K ใน 08 มกราคม 2010, 12:47:05
เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)
รออย่างมีความหวัง รบกวนด้วยนะครับ
:wanwan016: :wanwan016: :wanwan016: :wanwan016:
อ้างถึงจาก: nay-banana ใน 08 มกราคม 2010, 14:53:21
อ้างถึงจาก: Rapid-Developer ใน 08 มกราคม 2010, 14:39:41
ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File
ขอบคุณครับ ขอลองดูก่อนนะครับ แล้วจะมารายงานผลให้ได้ทราบ
:'( :'( :'(
เปิดโน๊ดเพด แล้วก็ บันทึกเป็น ใช่ไหมครับ
ผมทำหมดแล้ว แต่ก็ยังไม่ได้อยู่ดีครับ สงสัยคงต้องเปลี่ยนแผนแล้่วหล่ะแบบนี้
:P :P :P :P
ลองกับ FF หรือ IE ครับ
ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620 เท่านั้น
อ้างถึงจาก: beg ใน 08 มกราคม 2010, 22:51:44
ลองกับ FF หรือ IE ครับ
ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620 เท่านั้น
ผมใช้ Firefox ครับ เดี๋ยวขอลอง iconv ก่อนนะครับ
ขอให้ได้ทีเถอะ.................
:wanwan011: :wanwan011: :wanwan011:
อ้างถึงจาก: nay-banana ใน 09 มกราคม 2010, 08:14:25
อ้างถึงจาก: beg ใน 08 มกราคม 2010, 22:51:44
ลองกับ FF หรือ IE ครับ
ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620 เท่านั้น
ผมใช้ Firefox ครับ เดี๋ยวขอลอง iconv ก่อนนะครับ
ขอให้ได้ทีเถอะ.................
:wanwan011: :wanwan011: :wanwan011:
ทดสอบมาแล้วครับ สรุปว่ายังไม่ได้อยู่ดี
ยังไงก็ขอบคุณทุก ๆ ท่านนะครับ สงสัยต้องเปลี่ยนไปใช้อย่างอื่นแทนแล้วหล่ะครับ
:-X :-X :-X
เปลี่ยนให้เป็น utf-8 ทั้งหมดเลย ทั้งข้อมูลและ เว็ป แน่นอนที่สุด วิธีอื่นๆ ไม่แน่นอนครับแล้วแต่โฮสด้วย บางทีได้บางทีไม่ได้
:'( :'( :'( :'(
รายงานผลครับ ล่าสุดได้แล้วครับ
$keyword = iconv("UTF-8","TIS-620",$value1);
$sql="SELECT * FROM dream Where Mean like '%{$keyword}%'";
ส่วนที่เพิ่มเติมเข้ามา ตามนี้เลยครับ
ขอบคุณความรู้ดี ๆ จาก http://goragod.g-th.com/index.php?module=forum/view&wbid=611
และขอบคุณทุก ๆ ท่าน ณ ที้นี้ด้วยครับ โอกาศหน้าจะมาใหม่
:wanwan017: :wanwan017: :wanwan017: :wanwan017: