ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์ProgrammingAjax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: Ajax ค้นหาข้อมูลภาษาไทยจากฐานข้อมูล Mysql ไม่เจอ  (อ่าน 3459 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« เมื่อ: 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."%'";


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

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

ขอบคุณล่วงหน้าครับ
บันทึกการเข้า

dimeoxide
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 6



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 08 มกราคม 2010, 11:56:17 »

น่าจะเป็น collection ในตาราง + ต้องมี mysql_query("SET NAMES UTF8") ตอนเปิด connection
บันทึกการเข้า

Dr.K
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 432
ออฟไลน์ ออฟไลน์

กระทู้: 6,744



ดูรายละเอียด เว็บไซต์
« ตอบ #2 เมื่อ: 08 มกราคม 2010, 12:47:05 »

เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)
บันทึกการเข้า

Reality
สมุนแก๊งเสียว
*

พลังน้ำใจ: 51
ออฟไลน์ ออฟไลน์

กระทู้: 757



ดูรายละเอียด เว็บไซต์
« ตอบ #3 เมื่อ: 08 มกราคม 2010, 12:56:29 »

ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)
บันทึกการเข้า

*You walk right into reality, While my heart's still wild and free.. 

Midnight Adventure
nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #4 เมื่อ: 08 มกราคม 2010, 13:49:52 »

ตอนส่ง ajax ได้บีบ content type ให้เป็น utf-8 ด้วยรึเปล่าครับ (หรือ tis-620)

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

มีโค้ด ขอโค้ดเลยนะครับ........... Tongue Tongue Tongue
บันทึกการเข้า

Rapid-Developer
Newbie
*

พลังน้ำใจ: 4
ออฟไลน์ ออฟไลน์

กระทู้: 50



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 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
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #6 เมื่อ: 08 มกราคม 2010, 14:53:21 »

ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
 และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File

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

 Cry Cry Cry
บันทึกการเข้า

nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 08 มกราคม 2010, 14:59:42 »

ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
 และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File

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

 Cry Cry Cry

ว่าแต่วิธีดู ว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่านั้น ดูตรงไหน อย่างไรหรอครับ

แล้วถ้ามันไม่เป็นตามนี้ ต้องเซ็ตค่ามันอย่างไรครับ
บันทึกการเข้า

nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 08 มกราคม 2010, 15:07:28 »

เคยเจอปัญหาเหมือนกัน เพราะ ajax ต้องเรียกไทยแบบ utf โดยตรงเลย ไม่งั้นก็ต้องแปลงเอา
แบบนี้ครับ
http://search.thaihealth.net/search.php
เดี๋ยวไปค้นตัวแปลงโค๊ดมาให้ก่อน ลืมแล้ว (ทำไว้ปีนึงแล้วครับ)


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

 wanwan016 wanwan016 wanwan016 wanwan016
บันทึกการเข้า

nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 08 มกราคม 2010, 21:50:08 »

ลองเช็คดูครับว่า Fields ใน Database นั้นเป็น UTF-8 หรือเปล่า
 และดูว่า File ที่ใช้ในการ Search นั้น เนื้อ File จริงๆ Save เป็น UTF-8 หรือ Window-874, Tis-629 เพราะผมเคยปัญหานี้เหมือนกัน ถึงแม้จะกดหนด Meta ให้เป็น UTF-8 ก็ไม่หายจนมาดูที่เนื้อ File

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

 Cry Cry Cry

เปิดโน๊ดเพด แล้วก็ บันทึกเป็น ใช่ไหมครับ

ผมทำหมดแล้ว แต่ก็ยังไม่ได้อยู่ดีครับ สงสัยคงต้องเปลี่ยนแผนแล้่วหล่ะแบบนี้

 Tongue Tongue Tongue Tongue
บันทึกการเข้า

beg
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 149
ออฟไลน์ ออฟไลน์

กระทู้: 1,445



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 08 มกราคม 2010, 22:51:44 »

ลองกับ FF หรือ IE ครับ

ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620  เท่านั้น
บันทึกการเข้า

nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #11 เมื่อ: 09 มกราคม 2010, 08:14:25 »

ลองกับ FF หรือ IE ครับ

ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620  เท่านั้น

ผมใช้ Firefox ครับ เดี๋ยวขอลอง iconv ก่อนนะครับ

ขอให้ได้ทีเถอะ.................

 wanwan011 wanwan011 wanwan011
บันทึกการเข้า

nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 09 มกราคม 2010, 09:22:44 »

ลองกับ FF หรือ IE ครับ

ถ้า FF ได้ แต่ IE ไม่ได้ ให้ใช้คำสั่ง iconv แปลง query เป็น UTF-8 อีกที เพราะ ajax ใน IE จะส่งค่าต่างๆในภาษาไทยเป็น TIS-620  เท่านั้น

ผมใช้ Firefox ครับ เดี๋ยวขอลอง iconv ก่อนนะครับ

ขอให้ได้ทีเถอะ.................

 wanwan011 wanwan011 wanwan011

ทดสอบมาแล้วครับ สรุปว่ายังไม่ได้อยู่ดี

ยังไงก็ขอบคุณทุก ๆ ท่านนะครับ สงสัยต้องเปลี่ยนไปใช้อย่างอื่นแทนแล้วหล่ะครับ

 Lips Sealed Lips Sealed Lips Sealed
บันทึกการเข้า

anonymous
ก๊วนเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 225



ดูรายละเอียด
« ตอบ #13 เมื่อ: 09 มกราคม 2010, 09:45:43 »

เปลี่ยนให้เป็น utf-8 ทั้งหมดเลย ทั้งข้อมูลและ เว็ป แน่นอนที่สุด วิธีอื่นๆ ไม่แน่นอนครับแล้วแต่โฮสด้วย บางทีได้บางทีไม่ได้
บันทึกการเข้า
nay-banana
ก๊วนเสียว
*

พลังน้ำใจ: 19
ออฟไลน์ ออฟไลน์

กระทู้: 304



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 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....module=forum/view&wbid=611

และขอบคุณทุก ๆ ท่าน ณ ที้นี้ด้วยครับ โอกาศหน้าจะมาใหม่

 wanwan017 wanwan017 wanwan017 wanwan017
บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์