Cara Membuat Live Search dengan Ajax pada PHP

Cara Membuat Live Search dengan Ajax pada PHP – Hai sobat ketemu lagi dengan saya dan pada kesempatan kali ini saya akan melanjutkan postingan saya sebelumnya tentang Ajax Search. Setelah sebelumnya kita belajar tentang membuat menu search pada ajax dengan trigger tombol cari, sekarang kita akan menghapus tombol carinya dan membuat triggernya pada saat combobox dipilih/saat menulis kata kuncinya secara otomatis akan merefresh tabelnya.

Baca juga :

Cara Membuat Menu Filter & Search ke Semua Kolom pada PHP

Cara Membuat Menu Filter & Search dengan Ajax Tanpa Loading pada PHP

 

Berbeda dengan postingan sebelumnya hanya pada ajaxnya untuk yang lainnya sama dan pada tutorial kali ini kita tidak membutuhkan tombol cari jadi untuk itu tombol cari kita hapus saja. Namun saya akan mengulangnya agi dan saya jelaskan dari buat project lagi. Untuk itu sobat ikuti step-step dibawah ini.

 

Membuat Database MySQL

1. Pertama yang WAJIB ada yaitu sobat harus membuat sebuah database. Sobat bisa menggunakan tools bantu seperti navicat, heidi SQL atau lainnya. Sobat juga bisa membuatnya dengan mengakses url localhost/phpmyadmin -> klik tab Database dan tuliskan db_dewankomputer-> Klik tombol Create/Buat.

2. Buat tabel untuk mengetes nantinya apakah benar-benar terkoneksi atau belum dengan mengetikkan query dibawah ini pada tab SQL lalu klik tombol Kirim/Go

 

3. Isikan data pada tbl_mahasiswa_search dengan mengetikkan query dibawah ini

 

Cara Membuat Menu Filter & Search dengan Ajax

Untuk mempercantik tampilannya saya menggunakan bootstrap 4. Tidak usah berlama-lama, saya akan memberikan contohnya, yaitu sebagai berikut

1. Pertama buatlah folder pada htdocs, pada contoh saya beri nama folder dewan-live-search

2. Buatlah file koneksi.php pada folder project sobat dan isikan dengan script dibawah. Saya segaja tidak membuat file koneksi pada satu file dengan menu search seperti kebanyakan tutorial karena dalam penerapannya itu tidaklah mungkin jika kita membuat file koneksinya pada setiap halaman karena akan sangat susah nanti jika akan mengimplementasikan atau memindahkan server kita harus ganti satu per satu. Oleh karena itu kita harus membuatnya pada satu file saja dan jika ingin pindah server kita akan menggantinya di file ini saja.

isikan sesuai dengan host, user, password, dan nama database sobat. Untuk contoh di bawah ini saya berinama database dengan nama db_dewankomputer.

Jika sobat ingin tahu cara mengkoneksikan dengan dua database atau lebih dalam satu aplikasi maka sobat bisa kunjungi postingan dibawah ini

Cara Membuat Koneksi dengan Database MySQL bisa Dua atau Lebih Koneksi database/Multiple Connection dalam Satu Host maupun beda Host Menggunakan PHP – Part 3

 

3. Tambahkan librari bootstrap untuk mempercantik tampilan dan librari js yang tentunya diperlukan untuk bisa menjalankan ajax. Kode dibawah letakkan pada tag <head> dan saya mencontohkan degan librari cs dan js online. Jika sobat ingin menggunakan untuk keperluan development tentu sobat harus mendownloadnya terlebih dahulu siwebsite resminya atau pada project ini di akhir postingan. Kodenya adalah sebagai berikut

 

4. Buatlah file index.php pada folder sobat dan buat form search serta tabelnya. Untuk mempercantik tampilannya saya menggunakan booststrap 4. Isikan dengan script dibawah ini

 

5. Kemudian pada file index.php paling bawah sobat tambahkan script dibawah ini yang berisi ajax

Penjelasan :

KodeĀ load_data(); adalah kode untuk memanggil fungsi load_data yang mempunyai fungsi untuk menampilkan tabel pada elemen yang mempunyai class .data. Pada contoh diatas adalah pada index.php bagian <div class=”data”></div>. Nanti hasilnya adalah apa yang ditampilkan pada data.php dalam contoh kali ini adalah tabelnya. Tidak seperti pada tutorial sebelumnya yang menggunakan event click sebagai trigger untuk merefresh data, pada contoh kali ini kita akan menggunakan 2 event yaitu event select change dan event input text keyup. Pada event select change berarti jika user mengganti isi yang ada pada select option / combobox maka sistem akan menampilkan tabel yang ada pada tabel file data.php. Sedangkan pada event input text keyup berarti setiap user menginputkan 1 huruf maka sistem akan menampilkan tabel yang ada pada tabel file data.php. Oleh karena itu fungsi ajaxnya sebenarnya sama yaitu seperti dibawah

Jadi kita tidak perlu membuatnya pada event select change dan event input text keyup. Kita cukup membuatnya sekali saja yang kemudian kita simpan pada suatu fungsi dan jika kita membutuhkannya kita cukup memanggil nama fungsinya saja dan juga nilainya tentunya karena pada fungsi load_data() kita juga bisa menambahkan nilai yaitu jurusan dan keyword seperti yang tertulis pada kode load_data(jurusan, keyword). Jika kita tidak menuliskan nilainya sama saja dengan load_data(“”, “”) atau load_data();

Sedangkan pada kode dibawah berfungsi untuk menampilkan hasil dari tabel yang sudah di filter.

 

6. Seperti yang tertulis diatas pada ajax, kita perlu file data.php untuk menampilkan datanya dalam table. Jika sobat sudah membuatnya dan menampilkan tabelnya dalam file index.php atau lainnya, maka sobat bisa memisahkan tabelnya saja. Contoh kodenya pada data.php adalah sebagai berikut

Bagaimana sama bukan dengan kode untuk menampilkan data dalam tabel. Kenapa dipisah yaitu agar ajax bisa merefresh halaman ini saja saat user klik cari dan tentunya refresh disini tidak memerlukan loading. Kode diatas menggunakan metode object oriented dan prepare statement. Cara ini dinilai paling aman jika kita menggunakan mysqli. Untuk perbedaan Object Oriented dan Procedural maka sobat bisa lita postingan dibawah

Cara Membuat Koneksi dengan Database MySQL menggunakan PHP

 

7. Jika sobat jalankan maka akan menjadi seperti dibawah

 

Pada contoh diatas, trigger untuk meresfresh adalah tombol Cari. Kita bisa membuat triggernya apa saja seperti . Sekain postingan saya tentang Cara Membuat Menu Filter & Search ke Semua Kolom pada PHP. Jika ada pertanyaan atau masih bingung sobat bisa tanyakan pada kolom komentar yang tersedia pada kolom paling bawah.

 

Jika sobat ingin mendownload tutorial diatas maka sobat bisa klik link dibawah ini :

Sampai jumpa pada postingan saya selanjutnya..

15 thoughts on “Cara Membuat Live Search dengan Ajax pada PHP

  1. min sdh ikuti scriptnya tp koq ndak jln ya…
    itu saat
    $query = “SELECT * FROM tbl_mahasiswa_search WHERE jurusan LIKE ? AND (nama_mahasiswa LIKE ? OR …
    emang bisa ya like nya tanda tanya gitu?

    1. bisa gan itu pake statement parameter buat menghindari SQL Injection,
      masing2 di deklarasikan di bind_param()
      contoh :
      $dewan1->bind_param(‘ssssss’, $search_jurusan, $search_keyword, $search_keyword, $search_keyword, $search_keyword, $search_keyword);

      tanda tanya (?) total 6
      “s” total 6
      $parameter total 6
      semua harus sama

  2. knp ya..gak jalan pdl sdh disesuaikan koneksi,php nya
    malah muncul error spt ini PHP Fatal error: Call to undefined method mysqli_stmt::get_result() in /data.php on line 29

      1. sdh bisa gan…dan saya tdk memodifikasi asli dari download-an…ternyata mysqli nya ada yg blm dienablekan…makasih responnya…
        oh ya kalo sekalian ditambah Pagination nya ada tidak ya biar saat meload data yg banyak enak lihatnya…makasih

    1. masalahnya cuma di
      if (isset($_POST[‘KODE_STS’])) {
      $s_keyword = $_POST[‘keyword’];
      }
      harusnya
      if (isset($_POST[‘keyword’])) {
      $s_keyword = $_POST[‘keyword’];
      }

      karena ajaxnya tidak mengirim parameter ‘KODE_STS’ tapi hanya ‘keyword’

      1. Gan, maaf tanya lagi, klo untuk menggabungkan livesearch dan pagination nya itu gmn yah? saya liat hanya pagination saja blm ada penggabungannya, saya bingung nggabunginnya…

  3. Gan apa yg salah ya kok error mulu
    Fatal error: Call to undefined method PDOStatement::bind_param()
    mohon bantuan cek dong
    $search_jurusan = ‘%’. $s_jurusan .’%’;
    $search_keyword = ‘%’. $s_keyword .’%’;
    $no = 1;
    $query = “SELECT * FROM tbl_aktif WHERE ket LIKE ? AND (nama LIKE ? OR tgl_test LIKE ? OR waktu LIKE ? OR ket LIKE ?) ORDER BY notest DESC LIMIT 200”;
    $sql = $pdo->prepare($query);
    $sql->bind_param(‘ssssss’, $search_jurusan, $search_keyword, $search_keyword, $search_keyword, $search_keyword);
    $sql->execute();
    $res1 = $sql->get_result();

Leave a Reply

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

1 × one =