ขอถามเกี่ยวกับ ajax autocomplete
เริ่มจากตอนเริ่มแรกผมเขียนโปรแกรมโดยจำลองเครื่องผมเป็น server โดยใช้ Appserv ก็สามารถใช้ ajax autocomplete ค้นหาข้อความที่เป็นภาษาไทยได้ สามารถแสดงได้ถูกต้องทุกอย่าง แต่พอผมอัพขึ้น server ubuntu และลองใช้ ajax autocomplete ค้นหาจะค้นได้เฉพาะข้อมูลที่เป็น ภาษาอังกฤษ ส่วนภาษาไทยไม่สามารถค้นหาได้เลย ก็ลองไปคันหาตาม google ก็พบเว็ปหนึ่งบอกว่าเกี่ยวกับการส่งข้อมูลแบบ $_GET จะถูกเข้ารหัสเอาใว้ก็ลองเข้าไปดูตรง script ajaxcomplete.js ก็ยัง งง อยู่ว่าจะแก้ตรงใหน ตอนนี้จนปัญญาแล้วครับขอความช่วยเหลือด้วยครับ
ขอขอบคุณทุกความคิดเห็นครับ
ผมลองแล้วครับผลปรากฏว่ายังไม่ได้ครับ
ก็เลยคิดว่าจะเปลี่ยนการส่งจาก GET เป็น POST จะเปลี่ยนตรงใหนบ้างครับ...
ผมลองเปลี่ยนจากไฟล์ autocomplete.js ตรง this.transport.open("GET",this.url,true); เปลี่ยนจาก GET เป็น POST และเปลี่ยนที่ไฟล์ gdata.php จาก GET เป็น POST แล้วก็ลองส่งข้อมูลมาปรากฏว่าไม่ขึ้นอะไรเลยคือ ลองกดตรงรูปแว่นก็ไม่ได้ลองพิมพ์แต่ภาษาอังกฤษอย่างเดี๋ยวก็ไม่ขึ้น เหมือนกับว่าไม่ทำงานเลย
ผมก็ลอง Encode file และเปลี่ยนฐานข้อมูลให้เป็น UTF 8 ก็ยังไม่ได้
ผมจนปัญญาแล้วครับแต่ไม่คิดถ้อ จะมั่วต่อไปครับ ขอขอบคุณ คุณ ninenik อย่างมากครับ
ในสคริป จะมีบรรทัดหนึ่งเป็น
return "gdata.php?q=" + this.value;
ให้เข้ารหัสเป็น
return "gdata.php?q=" +encodeURIComponent(this.value);;
ปกติการเข้ารหัส หรือถอดรหัส จะใช้เมื่อ โครงสร้างไฟล์ ฐานข้อมูล ไม่ตรงกัน คือ เกิดปัญหาถึงใช้วิธีแก้ ตามตัวอย่างเป็นการเข้ารหัส
ก่อนส่งค่าไป ลองทดสอบดู
ปัญหาของผมคล้ายๆกับตัวอย่างที่ 2 ครับ
ผมก็เลยลองส่งโดย http://127.0.0.1/pathology/gdata.php?q=ทดสอบ ก็ไม่สามารถค้นหาข้อมูลได้ แต่พอผมส่งแบบเข้ารหัส
http://127.0.0.1/pathology/gdata.php?q=%E0%B8%97%E0%B8%94%E0%B8%AA%E0%B8%AD%E0%B8%9A ก็สามารถค้นหาข้อมูลได้ ผลลัพธ์คือ ทดสอบ (จากตัวอย่างนี้ผมส่งโดยใช้ method="get" และฝั่งรับก็ใช้ $_GET )
แต่โค้ดตัวนี้จะส่งจาก html -> javascript -> php
คราวนี้จะนำข้อมูลก่อนจะส่งมาเข้ารหัสอย่างไรดี แล้วปัญหาต่อมาผมจะถอดรหัสอย่างไรจากที่ลอง search ดูตาม google เข้าก็บอกให้ใช้ urlencode urldecode แต่ไม่รู้ว่าจะเริ่มตรงใหน
สอบถามเรื่อง Autocomplete หน่อยครับ ตอบ 1 อ่าน 33 ล่าสุด ที่ 30 เมษายน 2553
ปัญหา Ajax Autocomplete กับภาษาไทย ตอบ 5 อ่าน 537 ล่าสุด ที่ 8 ตุลาคม 2552
น่าจะเป็นปัญหาคล้าย คนอื่นๆ ลองดูตามหัวข้อลิ้งค์ตามด้านบนดู
