ขอถามเกี่ยวกับ ajax autocomplete

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอถามเกี่ยวกับ ajax autocomplete

ขอถามเกี่ยวกับ ajax autocomplete

เริ่มจากตอนเริ่มแรกผมเขียนโปรแกรมโดยจำลองเครื่องผมเป็น server โดยใช้ Appserv ก็สามารถใช้ ajax autocomplete ค้นหาข้อความที่เป็นภาษาไทยได้ สามารถแสดงได้ถูกต้องทุกอย่าง แต่พอผมอัพขึ้น server ubuntu และลองใช้ ajax autocomplete ค้นหาจะค้นได้เฉพาะข้อมูลที่เป็น ภาษาอังกฤษ ส่วนภาษาไทยไม่สามารถค้นหาได้เลย ก็ลองไปคันหาตาม google ก็พบเว็ปหนึ่งบอกว่าเกี่ยวกับการส่งข้อมูลแบบ $_GET จะถูกเข้ารหัสเอาใว้ก็ลองเข้าไปดูตรง script ajaxcomplete.js ก็ยัง งง อยู่ว่าจะแก้ตรงใหน ตอนนี้จนปัญญาแล้วครับขอความช่วยเหลือด้วยครับ

 

ขอขอบคุณทุกความคิดเห็นครับ



Woranon 110.164.213.xxx 11-05-2010 00:44:45

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 2

ปัญหาของผมคล้ายๆกับตัวอย่างที่ 2 ครับ  

ช่วยหน่อยคับ เรื่อง autocomplete ภาษาไทย หมดปัญญาแล้ว ขอบคุณคับ ตอบ 1 อ่าน 216 ล่าสุด ที่ 3 กุมภาพันธ์ 2553  

ผมก็เลยลองส่งโดย http://127.0.0.1/pathology/gdata.php?q=ทดสอบ ก็ไม่สามารถค้นหาข้อมูลได้ แต่พอผมส่งแบบเข้ารหัส

http://127.0.0.1/pathology/gdata.php?q=ทดสอบ ก็สามารถค้นหาข้อมูลได้ ผลลัพธ์คือ ทดสอบ (จากตัวอย่างนี้ผมส่งโดยใช้ method="get" และฝั่งรับก็ใช้ $_GET )

แต่โค้ดตัวนี้จะส่งจาก html -> javascript -> php

คราวนี้จะนำข้อมูลก่อนจะส่งมาเข้ารหัสอย่างไรดี แล้วปัญหาต่อมาผมจะถอดรหัสอย่างไรจากที่ลอง search ดูตาม google เข้าก็บอกให้ใช้ urlencode urldecode แต่ไม่รู้ว่าจะเริ่มตรงใหน



woranon 110.164.213.xxx 11-05-2010 14:29
 ความคิดเห็นที่ 3

ในสคริป จะมีบรรทัดหนึ่งเป็น

return "gdata.php?q=" + this.value;

ให้เข้ารหัสเป็น

return "gdata.php?q=" +encodeURIComponent(this.value);;

ปกติการเข้ารหัส หรือถอดรหัส จะใช้เมื่อ โครงสร้างไฟล์ ฐานข้อมูล ไม่ตรงกัน คือ เกิดปัญหาถึงใช้วิธีแก้ ตามตัวอย่างเป็นการเข้ารหัส
ก่อนส่งค่าไป ลองทดสอบดู

 



ninenik 124.122.125.xxx 11-05-2010
 ความคิดเห็นที่ 4

ผมลองแล้วครับผลปรากฏว่ายังไม่ได้ครับ

ก็เลยคิดว่าจะเปลี่ยนการส่งจาก GET เป็น POST จะเปลี่ยนตรงใหนบ้างครับ...

ผมลองเปลี่ยนจากไฟล์ autocomplete.js ตรง this.transport.open("GET",this.url,true); เปลี่ยนจาก GET เป็น POST และเปลี่ยนที่ไฟล์ gdata.php จาก GET เป็น POST แล้วก็ลองส่งข้อมูลมาปรากฏว่าไม่ขึ้นอะไรเลยคือ ลองกดตรงรูปแว่นก็ไม่ได้ลองพิมพ์แต่ภาษาอังกฤษอย่างเดี๋ยวก็ไม่ขึ้น เหมือนกับว่าไม่ทำงานเลย

ผมก็ลอง Encode file และเปลี่ยนฐานข้อมูลให้เป็น UTF 8 ก็ยังไม่ได้

ผมจนปัญญาแล้วครับแต่ไม่คิดถ้อ จะมั่วต่อไปครับ ขอขอบคุณ คุณ ninenik อย่างมากครับ

 



woranon 110.164.213.xxx 11-05-2010 19:08
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ