เขียน PHP ด้วยการค้นหาข้อมูล MySQL โดยใช้เทคนิค Ajax

Share Button

บทความนี้แนะนำเกี่ยวกับการค้นหาข้อมูล MySQL แล้วดึงข้อมูลออกมาโชว์ไม่ต้อง Refresh โดยใช้เทคนิค AJAX ในการทำงาน โดยตัวอย่าง source code เป็นตัวอย่างแบบง่ายๆ สามารถเข้าใจได้ไม่ยาก และนำไปประยุกต์ใช้ได้ทันที

demo ทดสอบคลิกที่นี้

ดาวน์โหลดไฟล์ทั้งหมด ที่นี้

1. สร้างตารางและ import ข้อมูล

2. สร้างไฟล์ connect.php แล้วนำ code ด้านล่างนี้ใส่ลงไป

3. สร้างไฟล์ index.php แล้วนำ code? ด้านล่างใส่

การทำงานของไฟล์ index.php คือแสดงหน้าจอการกรอกคำค้นหา เมื่อมีการใส่ข้อมูลค้นหา ระบบจะดึกข้อมูลจาก serach.php มาแสดงโดยใช้เทคนิคของ AJAX นั้นเอง ซึ่งเมื่อมีการคลิกปุ่มค้นหา javascript ทำงานโดยเรียกไฟล์ search.php ซึ่งไฟล์ search.php เป็นไฟล์ที่ดึงข้อมูลจากฐานข้อมูล เมื่อไฟล์ search.php ดึงข้อมูลมาเรียบร้อยแล้วจะส่งค่าข้อมูลกลับไปให้กับไฟล์ index.php โดยใช้ $.ajax

4. สร้างไฟล์ search.php

5. ผลลัพธ์
ajax-php

จบแล้วสำหรับบทความนี้หากผู้อ่านมีคำถามสามารถเขียนคำถามไว้ใต้ Comment เลยครับ

benext About benext
โปรแกรมเมอร์ ติดต่อ : itoffside@hotmail.com

Share Button

Published by

benext

โปรแกรมเมอร์ ติดต่อ : itoffside@hotmail.com

22 thoughts on “เขียน PHP ด้วยการค้นหาข้อมูล MySQL โดยใช้เทคนิค Ajax”

  1. ถ้าอยาก search แบบ dropdown list + คำค้นด้วย ต้องแก้ไขอย่างไรค่ะ

    1. javascript ตอน event คลิกเลือก dropdown list เสร็จแล้วให้ดึงข้อมูล ทำลักษณะคล้าย text box เลยครับ

  2. ถ้าอยาก search แบบ radio button check + คำค้นด้วย ต้องแก้ไขเพิ่มเติม code อย่างไรบ้างครับ มีตัวอย่างมั้ยครับ

    1. เพิ่ม radio และเพิ่มคำสั่งในการค้นหาในไฟล์ search.php ไปครับ

  3. ทำแล้วแต่ไม่แสดงผลน่ะค่ะ มันทำในฟังก์ชัน sucess แต่ไม่ยอมโชว์ข้อมูลจากไฟล์ search.php

    1. หมายถึงว่า ทำแล้วไม่แสดงข้อมูลเหรอครับ ลอง F12 เพื่อดีบั๊กดูครับ

  4. ถ้าผมอยาก ให้ ค้นหาได้หลาย ฟิลด์ ต้องทำยังไง ครับ ??

    1. select * from items where itemname1 like ‘%{$_POST[‘itemname’]}%’ or itemname2 like ‘%{$_POST[‘itemname’]}%’

  5. select * from items where itemname1 like ‘%{$_POST[‘itemname’]}%’ or itemname2 like ‘%{$_POST[‘itemname’]}%’

    ลองแล้วไม่ได้คับ กรณีต้องการค้นหาหลายๆ ฟิวส์คับ

  6. รบกวนหน่อยครับ ถ้าจะคนหาหลายฟิลดิ์อ่ะครับ ต้องเขียนประมาณไหนอ่ะครับ
    SELECT tbl_stud.stud_name, tbl_stud.stud_nickname, tbl_timestud.time_wrktime, tbl_timestud.time_outtime, tbl_stud.stud_id FROM tbl_stud, tbl_timestud WHERE tbl_timestud.stud_id=tbl_stud.stud_id and tbl_stud.stud_nickname or tbl_stud.stud_name like ‘%{$_POST[‘itemname’]}%’;
    อันนี้ คือที่ผมเขียนไว้อ่ะครับ แต่มันแสดงข้อมูลซ้อนกันไปมา จาก 10 เพิ่มเป็น 30

    1. ใช้เงื่อนไข or ครับ ตาม ตย. ด้านล่าง
      select * from tbname where name like '%{$data}%' or email like '%{$data}%' tel like '%{$data}%'

      1. รบกวนอีกนิดนึงนะครับ ถ้าจะให้มันแสดงตารางข้อมูลไว้ก่อนกดค้นหาได้มั้ยครับ เพราะปกติ จะไม่มีตารางแสดงอยู่ก่อน ผมอยากให้ตารางมันแสดงอยู่ก่อนด้วยอ่ะครับ

      2. รบกวนอีกนิดนึงนะครับ พอดีผมอยากจะให้แสดงตารางก่อนกดค้นกาด้วย ต้องทำยังไงอ่ะครับ

        1. คุณต้อง เขียน $.ajax({...}); ไว้ในฟังก์ชั่น แล้ว call function ตอนโหลด กับ ตอนคลิกปุ่ม ครับ

  7. text ตรวจสอบค่าว่างไม่ได้ครับ ไม่กรอกคำค้นหา กด submit มันแสดงข้อมูลทั้งหมดเลย แก้ยังไงให้ครับให้ text ไม่รับค่าว่าง

  8. ถ้า search หลาย input ต้องทำยังไงอ่ะครับ ? ขอความกรุณาด้วยครับ!

  9. Fatal error: Uncaught Error: Call to undefined function mysql_query() in C:\xampp\htdocs\databind\search.php:4 Stack trace: #0 {main} thrown in C:\xampp\htdocs\databind\search.php on line 4
    แก้ยังไง

  10. แสดงรายการมาแล้ว กดเลือกอย่างไรครับ

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.