Hướng dẫn
Quảng cáo

Phân trang trong PHP kết hợp với Jquery, Ajax và MySQL

Hướng dẫn phân trang trong PHP kết hợp với Jquery, Ajax và MySQL

Việc phân trang trong PHP kết hợp với Ajax làm cho trải nghiệm của người dùng tốt hơn, không cần phải tải lại trang nhiều, tiết kiếm được nhiều dung lượng cho người dùng.
Nào, bắt đầu xem cách làm nhé!
Trước tiên bạn tạo một Database với cơ sở dữ liệu như sau:

Ví dụ

CREATE TABLE messages
(
msg_id INT PRIMARY KEY AUTO_INCREMENT,
message VARCHAR(150)
);

Chỉ cần một bảng này thôi. Sau đó bạn nhập dữ liệu vào cho bảng nhé. Sử dụng lệnh giống dưới đây để insert dữ liệu:

Ví dụ

 INSERT INTO `messages` (`msg_id`, `message`) VALUES (NULL, 'Nội dụng tin nhắn 1'), (NULL, 'Nội dụng tin nhắn 2'), (NULL, 'Nội dụng tin nhắn 3');

Mã JavaScript: Đoạn mã này dùng để điều khiển cách tìm và hiển thị dữ liệu

Ví dụ

<script type="text/javascript" src="http://ajax.googleapis.com/
ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
function loading_show()
{
$('#loading').html("<img src='images/loading.gif'/>").fadeIn('fast');
}
function loading_hide()
{
$('#loading').fadeOut();
}
function loadData(page)
{
loading_show();
$.ajax
({
type: "POST",
url: "load_data.php",
data: "page="+page,
success: function(msg)
{
$("#container").ajaxComplete(function(event, request, settings)
{
loading_hide();
$("#container").html(msg);
});
}
});
}
loadData(1); // For first time page load default results
$('#container .pagination li.active').live('click',function(){
var page = $(this).attr('p');
loadData(page);
});
});
</script>

File load_data.php ở trong mã Javascript trên:

Ví dụ

<?php
define('DB_SERVER', 'localhost');
define('DB_USERNAME', 'username');
define('DB_PASSWORD', 'password');
define('DB_DATABASE', 'database');
$db = mysqli_connect(DB_SERVER,DB_USERNAME,DB_PASSWORD,DB_DATABASE);
if($_POST['page'])
{
$page = $_POST['page'];
$cur_page = $page;
$page -= 1;
$per_page = 15; // Per page records
$previous_btn = true;
$next_btn = true;
$first_btn = true;
$last_btn = true;
$start = $page * $per_page;
include"db.php";
$query_pag_data = "SELECT msg_id,message from messages LIMIT $start, $per_page";
$result_pag_data = mysqli_query($query_pag_data);
$msg = "";
while ($row = mysqli_fetch_array($result_pag_data,MYSQLI_ASSOC))
{
$htmlmsg=htmlentities($row['message']); //HTML entries filter
$msg .= "<li><b>" . $row['msg_id'] . "</b> " . $htmlmsg . "</li>";
}
$msg = "<div class='data'><ul>" . $msg . "</ul></div>"; // Content for Data
/* -----Total count--- */
$query_pag_num = "SELECT COUNT(*) AS count FROM messages"; // Total records
$result_pag_num = mysqli_query($query_pag_num);
$row = mysqli_fetch_array($result_pag_num,MYSQLI_ASSOC);
$count = $row['count'];
$no_of_paginations = ceil($count / $per_page);
/* -----Calculating the starting and endign values for the loop----- */
//Some Code. Available in download script
}
?>

Trên đây là code tải trang PHP kết hợp Ajax, nếu sử dụng có gì thắc mắc các bạn báo lại nhé.

Bài viết này đã giúp ích cho bạn?

Bài viết mới

Advertisements