Dalam tutorial ini, kita akan melihat contoh kode PHP untuk menambahkan pagination ke daftar catatan yang diambil dari database. Saya menggunakan AJAX untuk mengambil catatan untuk setiap halaman dari database dengan jQuery. Dalam contoh ini, saya memiliki dua opsi berdasarkan format pagination mana yang akan diubah. Satu hanya menampilkan tautan Sebelumnya dan Berikutnya untuk bernavigasi ke sana ke mari ke halaman sebelumnya dan berikutnya. Format lain menampilkan semua tautan halaman dan juga dengan tautan untuk menavigasi ke halaman pertama, terakhir, sebelumnya dan berikutnya.
Script HTML untuk Memilih Format Pagination
Script berikut menunjukkan dropdown dengan dua opsi untuk format pagination. Format default adalah untuk menampilkan semua tautan per halaman. saya memanggil jQuery untuk mengubah format pagination pada event perubahan opsi dropdown.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<div id="overlay"><div><img src="loading.gif" width="64px" height="64px"/></div></div> <div class="page-content"> <div style="border-bottom: #F0F0F0 1px solid;margin-bottom: 15px;"> Pagination Setting:<br> <select name="pagination-setting" onChange="changePagination(this.value);" class="pagination-setting" id="pagination-setting"> <option value="all-links">Display All Page Link</option> <option value="prev-next">Display Prev Next Only</option> </select> </div> <div id="pagination-result"> <input type="hidden" name="rowcount" id="rowcount" /> </div> </div> |
Menampilkan Hasil Pagination melalui AJAX
saya memiliki fungsi jQuery untuk mengirim panggilan AJAX ke PHP untuk mendapatkan hasil pagination. saya menyebut fungsi ini di dua tempat. Salah satunya adalah mengubah opsi pengaturan pagination untuk memperbarui format pagination. Panggilan lainnya adalah mengklik tautan pagination untuk menampilkan hasil halaman saat ini dan untuk menyorot halaman yang saat ini dipilih.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
<script> function getresult(url) { $.ajax({ url: url, type: "GET", data: {rowcount:$("#rowcount").val(),"pagination_setting":$("#pagination-setting").val()}, beforeSend: function(){$("#overlay").show();}, success: function(data){ $("#pagination-result").html(data); setInterval(function() {$("#overlay").hide(); },500); }, error: function() {} }); } function changePagination(option) { if(option!= "") { getresult("getresult.php"); } } </script> |
Memproses Permintaan Pagination AJAX dalam PHP
Script berikut membaca semua parameter seperti halaman saat ini, pengaturan pagination yang dikirim oleh panggilan AJAX. Berdasarkan parameter ini, skrip PHP memanggil fungsi pagination untuk membentuk respons AJAX.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php require_once("dbcontroller.php"); require_once("pagination.class.php"); $db_handle = new DBController(); $perPage = new PerPage(); $sql = "SELECT * from php_interview_questions"; $paginationlink = "getresult.php?page="; $pagination_setting = $_GET["pagination_setting"]; $page = 1; if(!empty($_GET["page"])) { $page = $_GET["page"]; } $start = ($page-1)*$perPage->perpage; if($start < 0) $start = 0; $query = $sql . " limit " . $start . "," . $perPage->perpage; $faq = $db_handle->runQuery($query); if(empty($_GET["rowcount"])) { $_GET["rowcount"] = $db_handle->numRows($sql); } if($pagination_setting == "prev-next") { $perpageresult = $perPage->getPrevNext($_GET["rowcount"], $paginationlink,$pagination_setting); } else { $perpageresult = $perPage->getAllPageLinks($_GET["rowcount"], $paginationlink,$pagination_setting); } $output = ''; foreach($faq as $k=>$v) { $output .= '<div class="question"><input type="hidden" id="rowcount" name="rowcount" value="' . $_GET["rowcount"] . '" />' . $faq[$k]["question"] . '</div>'; $output .= '<div class="answer">' . $faq[$k]["answer"] . '</div>'; } if(!empty($perpageresult)) { $output .= '<div id="pagination">' . $perpageresult . '</div>'; } print $output; ?> |
Oke itulah tadi pembahasan saya tentang Cara Membuat AJAX Pagination dengan PHP semoga bermanfaat.