--> Skip to main content

Menambahkan toolbar search pada tabel Jqgrid

Pada tutorial sebelumnya kita telah mengdiskusikan tentang cara membuat tabel jqgrid dengan judul : "Cara Membuat Tabel Jqgrid". Pada tabel jgrid yang kita ciptakan, terdapat pagination. Sekarang bagaimana caranya kalo data dari tabel tersebut mengandung banyak data, katakanlah 1000 baris, kemudian kita ingin mencari data tertentu berdasarkan keyword yang kita masukkan. Tentunya kalo melihat baris satu-persatu, terlalu membuang waktu. Untuk kebutuhan tersebut, kita akan menambahkan toolbar search pada tabel jqgrid. Sehingga akan mempermudahkan kita dalam proses pencarian data tertentu.

Berikut ini output yang kita harapkan setelah ditambahkan toolbar search pada tabel jqgrid seperti yang ditunjukkan oleh Gambar.1 dibawah ini :
cara menambahkan toolbar search pada tabel jqgrid
Gambar.1


Tahapan Membuat Tabel Jqgrid dengan Toolbar Search

Dalam menciptakan tabel yang dilengkapi dengan pagination dan toolbar search, kita membaginya dengan tiga tahap. Tahap pertama merupakan proses pembuatan database. Tahap kedua adalah pembuatan script php yang akan mengretrieve data dari database. Tahap ketiga merupakan interface untuk menampilkan tabel jqgrid.


Tahap ke-1 : Membuat Database

Dalam contoh ini, kita akan membuat database yang diberinama kepegawaian dengan tabel yang bernama pegawai. Pada tabel pegawai terdiri enam field, yaitu : nip,nama, divisi, jabatan, hp, email. Berikut ini script sql database untuk tabel pegawai :
CREATE TABLE IF NOT EXISTS `pegawai` (
  `nip` int(7) NOT NULL,
  `nama` varchar(30) NOT NULL,
  `divisi` varchar(20) NOT NULL,
  `jabatan` varchar(30) NOT NULL,
  `hp` int(14) NOT NULL,
  `email` varchar(30) NOT NULL,
  PRIMARY KEY (`nip`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Tahap ke-2 : Membuat file parsegrid1.php

Tujuan dari file ini adalah untuk mendapatkan jumlah halaman, baris, index baris yang akan ditambilkan pada tabel jqgrid. Berikut ini adalah script untuk parsegrid.php:
<?php 
error_reporting(0);
$conn = mysql_connect("localhost", "root", "") or die("Connection Error: " . mysql_error()); 
mysql_select_db("kepegawaian") or die("Error connecting to db."); 

$page = $_REQUEST['page']; // get the requested page
$limit = $_REQUEST['rows']; // get how many rows we want to have into the grid
$sidx = $_REQUEST['sidx']; // get index row - i.e. user click to sort
$sord = $_REQUEST['sord']; // get the direction
if(!$sidx) $sidx =1;

$totalrows = isset($_REQUEST['totalrows']) ? $_REQUEST['totalrows']: false;
if($totalrows) {
    $limit = $totalrows;
}

$result = mysql_query("SELECT COUNT(*) AS count FROM pegawai");
$row = mysql_fetch_array($result,MYSQL_ASSOC);
$count = $row['count'];

if( $count >0 ) {
    $total_pages = ceil($count/$limit);
} else {
    $total_pages = 0;
}
if ($page > $total_pages) 
    $page=$total_pages;
if ($limit<0) $limit = 0;
$start = $limit*$page - $limit; 
if ($start<0) $start = 0;
$SQL = "SELECT nip,nama,divisi,jabatan,hp,email from pegawai ".$where." ORDER BY $sidx $sord LIMIT $start , $limit";
$result = mysql_query( $SQL ) or die("Couldn�t execute query.".mysql_error());
$responce->page = $page;
$responce->total = $total_pages;
$responce->records = $count;
$i=0;
while($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
    $responce->rows[$i]['id']=$row['nip'];
    $responce->rows[$i]['cell']=array($row['nip'],$row['nama'],$row['divisi'],$row['jabatan'],$row['hp'],$row['email']); $i++;
} 
echo json_encode($responce);

?>

Tahap ke-3 : Membuat interface tabel jqgrid

Pada tahap ke-3 ini, kita berinama file dengan index_grid.html. Pada file ini kita menggunakan framework bootstrap untuk memperindah halaman interface. Anda dapat melakukan kreasi sendiri, karena bagian tersebut bukan bagian inti dari interface tabel jqgrid. Berikut ini adalah script untuk membuat tampilan jqgrid :
<!--- Bagian Dari JqGrid-->
<div align="center">
<table id="toolbar"></table> 
<div id="ptoolbar"></div>
</div>
<script>
    $(document).ready(function () {
        $("#toolbar").jqGrid({
            
            url: "parsegrid1.php",
            datatype: "json",
            mtype: "GET",
            colNames: ["Nip", "Nama", "Divisi", "Jabatan","No.HP","Email"],
            colModel: [
                { name: 'nip', index:'nip', width:65, sorttype:'int'},
                { name: 'nama', index:'nama' ,width:100},
                { name: 'divisi', index:'divisi',width:90},
                { name: 'jabatan', index:'jabatan',width:90},
                { name: 'hp', index:'hp',width:65},
                { name: 'email', index:'email',width:120}
            ],
    
            rownumbers:true,
            rowTotal:2000,
            rowNum: 10,
            rownumWidth: 40,
            rowList: [10,20],
            pager: "#ptoolbar",
            sortname: "nip",
            sortorder: "asc",
            width:900,
            loadonce:true,
            height: 'auto',
            viewrecords: true,
            gridview: true,
            caption: "Data Kepegawaian Detailed Technology Center"
        });
    jQuery("#toolbar").jqGrid('navGrid','#ptoolbar',{del:false,add:false,edit:false,search:false});
    jQuery("#toolbar").jqGrid('filterToolbar',{stringResult: true,searchOnEnter : false});
    });
</script>
<!--- Akhir jqGrid-->





Sedangkan untuk databasenya, dapat anda download pada link yang tersedia dibawah ini:
Comment Policy: Silahkan tuliskan komentar Anda yang sesuai dengan topik postingan halaman ini. Komentar yang berisi tautan tidak akan ditampilkan sebelum disetujui.
Buka Komentar
Tutup Komentar