VZN.vn
Tin tức giải trí 24h, scandal showbiz Việt và thế giới

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

Bài viết này sẽ hướng dẫn các bạn tạo phân trang trong PHP kết hợp với JQuery, Ajax và MySQL.

0 396

Bạn có thể xem Demo trang này Đọc truyện online (Xem phần mục lục nhé)

Nào, bắt đầu nhé!

Trước tiên bạn tạo một Database với cơ sở dữ liệu như sau:

Loading...
 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:

 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

 <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:

 <?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 

}
?>

 

Loading...