ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => หัวข้อเริ่มโดย: nay-banana ใน 08 มกราคม 2010, 11:50:56

ชื่อเรื่อง: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 08 มกราคม 2010, 11:50:56
 :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."%'";


งมมาหลายวันแล้วครับ ใช้ฟังก์ชั่นต่าง ๆ นา ๆ ช่วยในการส่ง และรับ แต่ก็ยังไม่ได้อยู่ดี

ยังไงก็รบกวนด้วยนะครับ ไม่รู้จะไปพึ่งใครแล้ว

ขอบคุณล่วงหน้าครับ
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: dimeoxide ใน 08 มกราคม 2010, 11:56:17
น่าจะเป็น collection ในตาราง + ต้องมี mysql_query("SET NAMES UTF8") ตอนเปิด connection
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: Dr.K ใน 08 มกราคม 2010, 12:47:05
เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: Reality ใน 08 มกราคม 2010, 12:56:29
ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 08 มกราคม 2010, 13:49:52
อ้างถึงจาก: Luscentz ใน 08 มกราคม 2010, 12:56:29
ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)

ตามโค้ดเลยครับ ผมก็หาตัวแปลงหลายอย่างแล้ว แต่...........ไม่รู้ว่ามันติดอะไรตรงไหน

มีโค้ด ขอโค้ดเลยนะครับ........... :P :P :P
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: 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
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: 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

ขอบคุณครับ ขอลองดูก่อนนะครับ แล้วจะมารายงานผลให้ได้ทราบ

:'( :'( :'(
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 08 มกราคม 2010, 14:59:42
อ้างถึงจาก: 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 หรือเปล่านั้น ดูตรงไหน อย่างไรหรอครับ

แล้วถ้ามันไม่เป็นตามนี้ ต้องเซ็ตค่ามันอย่างไรครับ
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 08 มกราคม 2010, 15:07:28
อ้างถึงจาก: Dr.K ใน 08 มกราคม 2010, 12:47:05
เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)

รออย่างมีความหวัง รบกวนด้วยนะครับ

:wanwan016: :wanwan016: :wanwan016: :wanwan016:
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 08 มกราคม 2010, 21:50:08
อ้างถึงจาก: 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
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: beg ใน 08 มกราคม 2010, 22:51:44
ลองกับ FF หรือ IE ครับ

ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620  เท่านั้น
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: 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:
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 09 มกราคม 2010, 09:22:44
อ้างถึงจาก: 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
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: anonymous ใน 09 มกราคม 2010, 09:45:43
เปลี่ยนให้เป็น utf-8 ทั้งหมดเลย ทั้งข้อมูลและ เว็ป แน่นอนที่สุด วิธีอื่นๆ ไม่แน่นอนครับแล้วแต่โฮสด้วย บางทีได้บางทีไม่ได้
ชื่อเรื่อง: Re: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
โพสต์โดย: nay-banana ใน 09 มกราคม 2010, 10:14:14
 :'( :'( :'( :'(

รายงานผลครับ ล่าสุดได้แล้วครับ

$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: