Membuat paging dengan combo box
Sebelumnya saya menulis tentang bagaimana membuat paging sederhana dalam php dengan cara menampilkan nomor halaman sebagai pilihan halamanya. Dengan cara tersebut untuk kasus data yang sedikit tidak bemasalah karena pilihan halaman tentunya juga sedikit, akan tetapi pada kasus data yang banyak mungkin ribuan bahkan lebih akan bermasalah karena pilihan halaman akan sangat banyak. Ada beberapa alternatif agar lebih mudah, salah satunya dengan membuat pilihan halaman dalam list/menu atau yang sering disebut combo box.
Oke langsung saja, mungkin anda sudah bisa memahami ya kenapa saya membahas paging lagi tapi dengan cara berbeda. Yang belum "mudeng" coba liat gambar berikut :
Cara Paging sederhana
Script bagian navigasi halamanya sepeti berikut :
$query = "SELECT COUNT(nim) AS numrows FROM $tablename"; $result = mysql_query($query) or die('Error, query failed. ' . mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); $numrows = $row['numrows']; $maxPage = ceil($numrows/$rowsPerPage); $nextLink = ' '; if($maxPage >1) { $self = $_SERVER['PHP_SELF']; $nextLink = array(); for($page = 1; $page <= $maxPage; $page++) { $nextLink[] = "<a href=\"".$baselink."?page=$page\">$page</a>"; } $nextLink = "<p>Halaman : </p>" . implode(' ', $nextLink); } echo '<div id="navpage">'.$nextLink.'</div>';
Cara Paging dengan combo box
Sedangan script untuk membuat paging combobox dengan cara :
$query = "SELECT COUNT(nim) AS numrows FROM $tablename"; $result = mysql_query($query) or die('Error, query failed. ' . mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); $numrows = $row['numrows']; $maxPage = ceil($numrows/$rowsPerPage); $nextLink = ' '; if($maxPage >1) { $nav .= "<form id=\"FNav\" name=\"FNav\" method=\"get\" action=\"\">"; $nav .= "Halaman : <select name=\"page\" id=\"page\">"; for($page = 1; $page <= $maxPage; $page++) { if($pageNum==$page) { $nav .= "<option selected>$page</option>"; } else { $nav .= "<option>$page</option>"; } } $nav .= "</select>"; $nav .= "<input type=\"submit\" name=\"btn\" id=\"btn\" value=\"Go\" />"; $nav .= "</form>"; } echo '<p>'.$nav.'</p>';
Jika anda lihat pada kedua gambar yang berbeda adalah navigasi halaman yang ada pada bagian bawah. Gambar pertama dengan menampilkan paging halaman dalam hyperlink, sedangkan gambar kedua menampilkan paging dengan combobox/list menu.
Untuk membuat paging dengan combobox secara umum hanya mengubah bagian scriipt navigasi halamanya.
Berikut perintah lengkap membuat paging dengan combobox.
<html> <head> <title>Membuat paging dengan list/menu</title> </head> <body> <div align="center"> <?php mysql_connect("localhost","root","") or die("Gagal Konek ke server"); mysql_select_db("db_mhs") or die("Gagal Konek ke database"); $tablename="tb_mhs"; // jumlah data perhalaman $rowsPerPage = 12; //nilai pertama $pageNum = 1; if(!empty($_GET['page'])) { $pageNum = $_GET['page']; } $offset = ($pageNum - 1) * $rowsPerPage; // query database $query = "SELECT * FROM $tablename ORDER by nim asc LIMIT $offset, $rowsPerPage"; $result = mysql_query($query) or die('Error, query failed. ' . mysql_error()); ?> <h2 class="tengah">DATA MAHASISWA</h2> <table width="450" border="0" cellpadding="3" cellspacing="1" bgcolor="#999999"> <tr bgcolor="#E8FDEC"> <th width="149">NIS</th> <th width="348">NAMA</th> </tr> <?php while($row = mysql_fetch_array($result)) { ?> <tr bgcolor="#fff"> <td><?php echo $row['nim']?></td> <td><?php echo $row['nama']?></td> </tr> <?php } //end of while ?> </table> <?php $query = "SELECT COUNT(nim) AS numrows FROM $tablename"; $result = mysql_query($query) or die('Error, query failed. ' . mysql_error()); $row = mysql_fetch_array($result, MYSQL_ASSOC); $numrows = $row['numrows']; $maxPage = ceil($numrows/$rowsPerPage); $nextLink = ' '; if($maxPage >1) { $nav .= "<form id=\"FNav\" name=\"FNav\" method=\"get\" action=\"\">"; $nav .= "Halaman : <select name=\"page\" id=\"page\">"; for($page = 1; $page <= $maxPage; $page++) { if($pageNum==$page) { $nav .= "<option selected>$page</option>"; } else { $nav .= "<option>$page</option>"; } } $nav .= "</select>"; $nav .= "<input type=\"submit\" name=\"btn\" id=\"btn\" value=\"Go\" />"; $nav .= "</form>"; } echo '<p>'.$nav.'</p>'; mysql_free_result($result); ?> </div> </body> </html>
Langkah-langkah membuatnya serta susunan databasenya sama dengan membuat paging sebelumnya, silahkan anda download lengkap membuat paging dengan combo berikut.
Semoga bermanfaat.
** Bebas disunting dengan menyebutkan sumber **