Live Search Data Dengan PHP Dan AJAX

Search data sangat dibutuhkan apabila data didalam database atau data yang ditampilkan sudah terbilang banyak, terkadang kita atau seorang user mungki

Live Search Data Dengan PHP Dan AJAX

Tutorial PHP Lanjutan Part 39 : Live Search Data Dengan PHP Dan AJAX

Tutorial PHP Lanjutan Part 39 : Live Search Data Dengan PHP Dan AJAX -  Hello everyone selamat datang kembali diwebsite saya belajarwithib.my.id, pada seri kali ini kita akan masih mempelajari mengenai PHP dan kita sudah masuk ketahap lanjutan sekarang saya akan membuat materi baru dengan judul Live Search Data Dengan PHP Dan AJAX.

Search data sangat dibutuhkan apabila data didalam database atau data yang ditampilkan sudah terbilang banyak, terkadang kita atau seorang user mungkin akan memerlukan data dari banyaknya data didalam database jadi untuk mempermudah user dalam mencari data, kita harus membuat fitur pencarian data dan pada tutorial kali ini saya akan memberikan tutorial membuat fitur search data menggunakan ajax jadi tanpa refresh maka data akan muncul.

Live Search Data Dengan PHP Dan AJAX

Membuat Database

Buatlah database dengan nama “belajarwithib” setelah itu buat juga table didalam database tersebut dengan nama “siswa” lalu buat field didalam table tersebut seperti dibawah ini :

  • id_siswa int(11)
  • siswa_nama varchar(70)
  • siswa_kelas varchar(70)
  • siswa_alamat text

Setelah itu kamu masukan data siswa sebanyak apapun yang kamu buat  namun kalau mau lebih cepat dan tidak mau ribet untuk buat table lalu mengisi datanya silahkan gunakan query seperti dibawah :


CREATE TABLE `siswa` (
  `id_siswa` int(11) NOT NULL,
  `siswa_nama` varchar(70) NOT NULL,
  `siswa_kelas` varchar(70) NOT NULL,
  `siswa_alamat` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- Dumping data untuk tabel `siswa`
--

INSERT INTO `siswa` (`id_siswa`, `siswa_nama`, `siswa_kelas`, `siswa_alamat`) VALUES
(26, 'Budi', 'XII MP', 'Aek nabara'),
(27, 'Ibnu', 'XII RPL', 'Perdamean'),
(28, 'Noitsu', 'XII RPL', 'Perdamean'),
(29, 'Shido', 'XI TKJ', 'Sigambal'),
(30, 'Sagiri', 'XI AK', 'Medan'),
(34, 'Ilham', 'XII MM', 'Perdamean'),
(35, 'Samsul', 'XII TKJ', 'Medan'),
(36, 'Hatori', 'XII RPL', 'Palembang'),
(37, 'Kurumi', 'XII AK', 'Jakarta'),
(38, 'Tohka', 'XII MP', 'Jakarta Utara'),
(39, 'Saitama', 'XII TKR', 'Medan'),
(40, 'Genos', 'XII TKR', 'Medan'),
(41, 'Sirver Fang', 'XII TKJ', 'Riau'),
(42, 'Blast', 'XII TKJ', 'Riau'),
(43, 'Naruto', 'XII MM', 'Jogja');

Jika sudah berhasil untuk membuat databasenya, mari kita lanjut ke langkah selanjutnya.

Membuat Halaman Pencarian Data

Sama seperti sebelumnya saya masih menggunakan bootstrap dan file-file bootstrapnya saya panggil menggunakan CDN jadi apabila kamu sedang mempraktekkan materi dari saya pastikan laptop/komputer kamu sudah terhubung ke internet ya!

Buatlah file dengan nama index.php lalu langsung ketik saja code seperti dibawah ini:

Index.php


<!doctype html>
  <html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">

    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">

    <title>Live Search Data Dengan PHP Dan AJAX</title>
  </head>
  <body>
    <div class="container">
      <div class="card mt-5">
        <div class="card-header">
        Live Search Data Dengan PHP Dan AJAX
       </div>
       <div class="card-body">
        <div class="row">
          <div class="col-md-8"></div>
          <div class="col-md-4">
            <div class="mb-3">
            <input type="text" class="form-control" id="search" name="search" placeholder="Cari disini...">
          </div>
          </div>
        </div>
          <div id="hasil"></div>
        <p class="text-center mt-2"><a href="https://www.belajarwithib.my.id/" target="_blank" style="text-decoration:none;">www.belajarwithib.my.id</a></p>
      </div>
    </div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript">
  $(document).ready(function(){
    load_data();
    function load_data(search){
      $.ajax({
        url:"get_data.php",
        method:"POST",
        data: {
          search: search
        },
        success:function(data){
          $('#hasil').html(data);
        }
      });
    }
    $('#search').keyup(function(){
      var search = $("#search").val();
      load_data(search);
    });
  });
  </script>
</body>
</html>

Perhatikanlah code dibawah ini, nah disini kita memulai ajax namun ajaxnya akan bekerja ketika kamu sudah mengetik apapun dikolom pencarian hal itu terjadi karena saya menggunakan fungsi bawaan Jquery yaitu keyup() yang merupakan event ketika tombol dilepaskan pada keyboard.


<script type="text/javascript">
  $(document).ready(function(){
    load_data();
    function load_data(search){
      $.ajax({
        url:"get_data.php",
        method:"POST",
        data: {
          search: search
        },
        success:function(data){
          $('#hasil').html(data);
        }
      });
    }
    $('#search').keyup(function(){
      var search = $("#search").val();
      load_data(search);
    });
  });
  </script>

Memproses Data Yang Direquest Oleh User

Ajax akan mengirim sebuah keyword ke file get_data.php, maksud dari keyword disini adalah hal apapun yang diketikkan oleh user dikolom pencarian jadi apapun yang diketik bakalan ditangkap oleh Jquery lalu dikirim Ajax ke file get_data.php.

Sekarang buatlah file dengan nama get_data.php lalu ketikan code seperti dibawah ini:

Get_data.php


<table class="table table-striped table-bordered">
    <thead>
        <tr>
            <th width="1%">No</th>
            <th>Nama Siswa</th>
            <th>Kelas</th>
            <th>Alamat</th>
        </tr>
    </thead>
    <tbody>
        <?php
        $no = 1;
        $koneksi = mysqli_connect("localhost", "root", "", "belajarwithib");

        $keyword="";
        if (isset($_POST['search'])) {
            $keyword = $_POST['search'];
        }

        $query = mysqli_query($koneksi,"SELECT * FROM siswa WHERE siswa_nama LIKE '%".$keyword."%' OR siswa_kelas LIKE '%".$keyword."%' ORDER BY id_siswa DESC");
        $hitung_data = mysqli_num_rows($query);
        if ($hitung_data > 0) {
            while ($data = mysqli_fetch_array($query)) {
                ?>
                <tr>
                    <td><?php echo $no++; ?></td>
                    <td><?php echo $data['siswa_nama']; ?></td>
                    <td><?php echo $data['siswa_kelas']; ?></td>
                    <td><?php echo $data['siswa_alamat']; ?></td>
                </tr>
            <?php } } else { ?> 
                <tr>
                    <td colspan='4' class="text-center">Tidak ada data ditemukan</td>
                </tr>
            <?php } ?>
        </tbody>
    </table>

Pada code dibawah, pertama kita harus membuat variable $keyword yang kosong karena untuk menampilkan data seluruhnya dan apabila $keyword uda diisi oleh data dari AJAX barulah datanya ditampilkan berdasarkan keyword yang dikirim.


        $keyword="";
        if (isset($_POST['search'])) {
            $keyword = $_POST['search'];
        }

        $query = mysqli_query($koneksi,"SELECT * FROM siswa WHERE siswa_nama LIKE '%".$keyword."%' OR siswa_kelas LIKE '%".$keyword."%' ORDER BY id_siswa DESC");

Untuk mencari data didalam database MYSQL kita gunakan operator LIKE yang memang berfungsi sebagai untuk melakukan pencarian data pada database, berdasarkan teks / huruf yang dimasukan.

Hasil dari program diatas kira-kira akan seperti dibawah ini:

Live Search Data Dengan PHP Dan AJAX
Semua data didalam database tampil


Live Search Data Dengan PHP Dan AJAX
Menampilkan data berdasarkan keyword


Live Search Data Dengan PHP Dan AJAX
Jika data tidak ada didalam database


Mungkin seperti itulah kira-kira membuat live search data dengan AJAX dan PHP.

File Untuk Kebutuhan Belajar

Source CodeLive Search Data Dengan PHP Dan AJAX

Semoga Bermanfaat!