Tutorial Membuat AJAX Search dengan PHP

Tutorial Membuat AJAX Search atau skrip pencarian data menggunakan AJAX. Tutorial ini adalah kelanjutan dari tutorial Membuat Searching (Skrip Pencarian Data). Sebelum mengikuti tutorial ini ada baiknya untuk mengikuti tutorial AJAX sebelumnya. AJAX search bisa diterapkan pada quick search. Hasil akhir tutorial ini adalah skrip pencarian seperti google instant search. Tutorial ini menggunakan jQuery, jQuery bisa didownload di website jQuery, atau bisa juga menggunakan google CDN http://code.google.com/apis/libraries/devguide.html#jquery.
Tutorial AJAX search ini masih menggunakan tabel siswa seperti berikut:

Fieldname Tipe Data Keterangan
idint(11)primary key
namavarchar(50)
ayahvarchar(50)
ibuvarchar(50)
alamattext

selain itu diasumsikan Anda telah memiliki pengetahuan javascript, DOM dan jQuery.

AJAX Search


Gunakanlah skrip php dan javascript di bawah untuk membuat AJAX search (simpan dengan nama ajax-search.php). Skrip di bawah merupakan pengembangan dari skrip quick search di tutorial Membuat Searching (Skrip Pencarian Data).
<!--file ajax-search.php -->
<?php if(!isset($_GET['q'])):?>
<!-- form quick search -->
<form name="form1" method="get" action="">
Search : <input type="text" name="q" id="q"/> <input type="submit" value="Search"/>
</form>
<!-- tempat hasil pencarian ditampilkan -->
<div id="result"></div>
<!-- javascript -->
<!-- jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
<script type="text/javascript">
var allow = true;
$(document).ready(function(){
$("#q").keypress(function(e){
if(e.which == '13'){
e.preventDefault();
loadData();
}else if($(this).val().length >= 2){
loadData();
}
});
});
function loadData(){
if(allow){
allow = false;
$("#result").html('loading...');
$.ajax({
url:'ajax-search.php?q='+escape($("#q").val()),
success: function (data){
$("#result").html(data);
allow = true;
}
});
}
}
</script>
<?php endif;?>
<?php
if(isset($_GET['q']) && $_GET['q']){
$conn = mysql_connect("localhost", "root", "");
mysql_select_db("test");
$q = $_GET['q'];
$sql = "select * from siswa where nama like '%$q%' or
ayah like '%$q%' or ibu like '%$q%' or alamat like '%$q%'";
$result = mysql_query($sql);
if(mysql_num_rows($result) > 0){
?>
<table>
<tr>
<td>Nama</td>
<td>Ayah</td>
<td>Ibu</td>
<td>Alamat</td>
</tr>
<?php
while($siswa = mysql_fetch_array($result)){?>
<tr>
<td><?php echo $siswa['nama'];?></td>
<td><?php echo $siswa['ayah'];?></td>
<td><?php echo $siswa['ibu'];?></td>
<td><?php echo $siswa['alamat'];?></td>
</tr>
<?php }?>
</table>
<?php
}else{
echo 'Data not found!';
}
}
?>

pada baris ke-11 sampai ke-37 ditambahkan javascript untuk menampilkan data secara dinamis pada saat pengguna mengetikkan 3 karakter atau lebih atau pada saat pengguna menekan tombol enter.

Selamat Mencoba