ทำยังไงให้ auto complete ส่งค่ากลับมาได้หลาย ๆ ฟิลล์ อะครับ ตามตัวอย่างที่เว็บนี้แหละครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ทำยังไงให้ auto complete ส่งค่ากลับมาได้หลาย ๆ ฟิลล์ อะครับ ตามตัวอย่างที่เว็บนี้แหละครับ
ตามกระทู้นี้อะครับ https://www.ninenik.com/content.php?arti_id=209 คือต้องการให้เอาฟิลล์ อื่น ๆที่อยู่ในตารางมาแสดงด้วยอะครับ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ก็ใช้ select * ไงครับ เลือกทุกฟิลล์
จะให้เแสดงฟิลล์ไหน ก็สั่ง echo ฟิลล์นั้นๆ เช่น $res['id']; $res['name']; $res['lastname']; บลาๆๆๆ

มีท่านอื่นอีกไหมครับ...แบบนี้ไม่ได้ครับ หรือ ท่าน Skylab จะเพิ่มอีกครับ หรือทำให้ดูแบบเต็ม ๆ หน่อยก้ดีครับ

https://www.ninenik.com/content.php?arti_id=209
ในไฟล์ gdata.php Code
บรรทัด
1 | echo "<li onselect=" this.setText( '$name' ).setValue( '$id' ); ">$display_name</li>" ; |
เราสามารถเพิ่มฟังก์ชั่น เข้าไปเพิ่มก็ได้ หรือจะต่อจากตัวเดิมก็ได้ ตัวอย่าง การเพิ่มฟังก์ชั่นเพิ่ม
เราจะเพิ่มฟังก์ชัน myfunction เข้าไป จะได้เป็น
1 | echo "<li onselect=" this.setText( '$name' ).setValue( '$id' ).myfunction( '$data1' , '$data2' , '$data3' ); ">$display_name</li>" ; |
$data1 $data2 และ $data3 คือค่าที่เราจะส่งกลับมา
จากนั้นให้ไปเพิ่มฟังก์ชัน ในส่วนของ Javascript Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <script type= "text/javascript" > function make_autocom(autoObj,showObj){ var mkAutoObj=autoObj; var mkSerValObj=showObj; new Autocomplete(mkAutoObj, function () { this.setValue = function (id) { document.getElementById(mkSerValObj).value = id; } if ( this.isModified ) this.setValue( "" ); if ( this.value.length < 1 && this.isNotClick ) return ; return "gdata.php?q=" +encodeURIComponent(this.value); }); } // การใช้งาน // make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า"); make_autocom( "show_arti_topic" , "h_arti_id" ); </script> |
ตัวอย่างการเพิ่มฟังก์ชัน
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | <script type= "text/javascript" > function make_autocom(autoObj,showObj){ var mkAutoObj=autoObj; var mkSerValObj=showObj; new Autocomplete(mkAutoObj, function () { this.setValue = function (id) { document.getElementById(mkSerValObj).value = id; } this.myfunction = function (data1,data2,data3){ // ที่เพิ่มเข้ามา alert(data1+ " " +data2+ " " +data3); // ที่เพิ่มเข้ามา } // ที่เพิ่มเข้ามา if ( this.isModified ) this.setValue( "" ); if ( this.value.length < 1 && this.isNotClick ) return ; return "gdata.php?q=" +encodeURIComponent(this.value); }); } // การใช้งาน // make_autocom(" id ของ input ตัวที่ต้องการกำหนด "," id ของ input ตัวที่ต้องการรับค่า"); make_autocom( "show_arti_topic" , "h_arti_id" ); </script> |

ไม่รู้โค้ดที่เพิ่มเติมมาได้ทดสอบหรือยังครับ ผมลองทำแล้วไม่ได้อะครับ แล้วตรง textbox ที่เราจะให้แสดงค่าต้องทำยังไงครับ

ถ้าไม่ได้ลองเปลี่ยนจาก
1 | echo "<li onselect=" this.setText( '$name' ).setValue( '$id' ).myfunction( '$data1' , '$data2' , '$data3' ); ">$display_name</li>" ; |
เป้น
1 | echo "<li onselect=" this.setText( '$name' ).setValue( '$id' );this.myfunction( '$data1' , '$data2' , '$data3' ); ">$display_name</li>" ; |
