Tutorial PHP Lanjutan Part 37 : Membuat Auto Search Suggestion/Autocomplete
Dengan PHP
Tutorial PHP Lanjutan Part 37 : Membuat Auto Search Suggestion/Autocomplete
Dengan PHP - 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 Membuat Auto Search Suggestion/Autocomplete
Dengan PHP.
Auto Search
Suggestion/Autocomplete sepertinya sudah banyak kamu lihat pada website karena
memudahkan seorang user untuk mencari data yang sesuai pada database. Jadi kesannya
hampir seperti pencarian google ya!.
Lanjut
bahas kebawah yuk!
Membuat Auto Search Suggestion/Autocomplete Dengan PHP
Hal Yang Harus Disiapkan
Okey
teman-teman, pada materi ini ada hal yang harus kita persiapkan dulu untuk
membuat autocomplete.
Hal pertama
yang kita butuhkan adalah plugin jQuery-Autocomplete yang berfungsi untuk memungkinkan Kamu dengan mudah membuat kotak
autocomplete/autosuggest untuk bidang input teks.
Hal kedua
yaitu data provinsi atau data daerah untuk hal ini sih saya sudah mencari
digithub dan ketemu pastinya, apabila kamu perlu data daerah Indonesia silahkan
kunjungi profile github cahyadsn atau bisa kamu klik disini
Dengan
demikian kita dapat melanjutkan pelajaran mengenai Membuat Auto Search
Suggestion/Autocomplete Dengan PHP.
Membuat Database Provinsi
Buatlah
database dengan nama “belajarwithib” setelah itu buat juga table didalam
database tersebut dengan nama “provinsi” lalu buat field didalam table tersebut
seperti dibawah ini :
- id_prov char(2) NOT NULL,
- nama tinytext NOT NULL,
- PRIMARY KEY (id_prov)
Atau lebih
cepat bisa gunakan query seperti dibawah ini:
CREATE TABLE IF NOT EXISTS provinsi (
id_prov char(2) NOT NULL,
nama tinytext NOT NULL,
PRIMARY KEY (id_prov)
);
Setelah itu
kamu masukan data provinsi sebanyak apapun yang kamu tahu namun kalau mau lebih
cepat silahkan gunakan query seperti dibawah
INSERT INTO provinsi (id_prov, nama) VALUES
('11', 'Aceh'),
('12', 'Sumatera Utara'),
('13', 'Sumatera Barat'),
('14', 'Riau'),
('15', 'Jambi'),
('16', 'Sumatera Selatan'),
('17', 'Bengkulu'),
('18', 'Lampung'),
('19', 'Kepulauan Bangka Belitung'),
('21', 'Kepulauan Riau'),
('31', 'DKI Jakarta'),
('32', 'Jawa Barat'),
('33', 'Jawa Tengah'),
('34', 'DI Yogyakarta'),
('35', 'Jawa Timur'),
('36', 'Banten'),
('51', 'Bali'),
('52', 'Nusa Tenggara Barat'),
('53', 'Nusa Tenggara Timur'),
('61', 'Kalimantan Barat'),
('62', 'Kalimantan Tengah'),
('63', 'Kalimantan Selatan'),
('64', 'Kalimantan Timur'),
('65', 'Kalimantan Utara'),
('71', 'Sulawesi Utara'),
('72', 'Sulawesi Tengah'),
('73', 'Sulawesi Selatan'),
('74', 'Sulawesi Tenggara'),
('75', 'Gorontalo'),
('76', 'Sulawesi Barat'),
('81', 'Maluku'),
('82', 'Maluku Utara'),
('92', 'Papua'),
('91', 'Papua Barat');
Okey
masalah database sudah beres nih
sekarang kita masuk kedalam tahap berikutnya.
Membuat Tampilan Search
Kita masih
memakai bootstrap agar lebih cepat dan lebih agak manusiawi tampilannya namun
jika ingin lebih keren silahkan kembangkan atau costum sendiri ya.
Sekarang
buatlah file dengan nama index.php lalu ketikan code seperti dibawah:
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>Membuat Auto Search Suggestion/Autocomplete Dengan PHP</title>
<style type="text/css">
.autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; }
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; }
.autocomplete-selected { background: #F0F0F0; }
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
.autocomplete-group { padding: 2px 5px; }
.autocomplete-group strong { display: block; border-bottom: 1px solid #000; }
</style>
</head>
<body>
<div class="container">
<div class="card mt-5">
<div class="card-header">
Auto Search Suggestion/Autocomplete Data Provinsi
</div>
<div class="card-body">
<form>
<div class="mb-3">
<label class="form-label">Cari Provinsi</label>
<input type="text" class="form-control" id="search" name="search" placeholder="Cari disini...">
</div>
</form>
<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 src="https://cdnjs.cloudflare.com/ajax/libs/jquery.devbridge-autocomplete/1.4.11/jquery.autocomplete.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$( "#search" ).autocomplete({
serviceUrl: "get_data.php",
dataType: "JSON",
onSelect: function (suggestion) {
$( "#search" ).val(suggestion.nama);
}
});
})
</script>
</body>
</html>
Pada code
dibawah ini lah cara kita menggunakan Jquery-Autocomplete kode emang singkat.
<script type="text/javascript">
$(document).ready(function() {
$( "#search" ).autocomplete({
serviceUrl: "get_data.php",
dataType: "JSON",
onSelect: function (suggestion) {
$( "#search" ).val(suggestion.nama);
}
});
})
</script>
Maksud dari
serviceUrl: "get_data.php" kalau get_data.php itulah akan diproses
datanya jadi sama seperti ajax ya.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.devbridge-autocomplete/1.4.11/jquery.autocomplete.min.js"></script>
Code diatas berfungsi untuk memanggil plugin jQuery-Autocomplete agar bisa kita gunakan pada project kita saat ini.
Memproses Data Untuk Suggestion/AutoComplete
Ya tentu
Jquery juga membutuhkan data agar dijadikan Suggestion jadi kita buat dengan
PHP dan cara nya pun tidak jauh beda dengan cara menampilkan data dari
database.
Sekarang
buatlah file dengan nama get_data.php dan ketikan code seperti dibawah:
get_data.php
<?php
header("Content-Type: application/json; charset=UTF-8");
$koneksi = mysqli_connect("localhost", "root", "", "belajarwithib");
if(isset($_GET['query'])){
$keyword = $_GET['query'];
$query = mysqli_query($koneksi,"SELECT * FROM provinsi WHERE nama LIKE '%".$keyword."%' ORDER BY id_prov LIMIT 10");
while ($data = mysqli_fetch_array($query)) {
$output['suggestions'][] = [
'value' => $data['nama'],
'nama' => $data['nama']
];
}
if (! empty($output)) {
echo json_encode($output);
}
}
?>
Jika kamu
sudah mengikuti atau sudah paham mengenai PHP dasar atau PHP menengah saya rasa
sudah cukup jelaskan apa yang saya ketikan diatas dan kamu pun akan paham.
if(isset($_GET['query'])){
$keyword = $_GET['query'];
$query = mysqli_query($koneksi,"SELECT * FROM provinsi WHERE nama LIKE '%".$keyword."%' ORDER BY id_prov LIMIT 10");
while ($data = mysqli_fetch_array($query)) {
$output['suggestions'][] = [
'value' => $data['nama'],
'nama' => $data['nama']
];
}
Pada code
diatas kita harus dulu mengambil data berdasarkan Keyword atau Query yang sudah
kita tampung kedalam variable dan Keyword itu berasal dari kata atau text yang
kita tuliskan pada text input.
Dan setelah
itu kita ubah datanya kedalam bentuk JSON agar Jquery-AutoComplete dapat
mengambil data tersebut.
Hasil dari
program kita akan seperti dibawah ini:
Apapun yang
kamu ketikan atau apapun yang kamu cari otomatis akan muncul kotak sarannya.
File Untuk Kebutuhan Belajar
Source CodeMembuat Auto Search Suggestion/Autocomplete Dengan PHP
Okey sekian
lah materi dari saya, semoga kamu bisa untuk mengembangkan tutorial ini jadi
jauh lebih kompleks.
Semoga
Bermanfaat!