要在使用jQuery和PHP的过滤产品页面上添加分页功能,你需要完成以下几个步骤:
分页是一种将大量数据分割成多个小部分的技术,以便用户可以更容易地浏览和查找所需信息。在前端,分页通常通过显示页码或上一页/下一页按钮来实现;在后端,分页涉及限制每次查询返回的数据量。
LIMIT
和OFFSET
子句来获取指定范围的数据。<?php
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$limit = 10; // 每页显示的数量
$offset = ($page - 1) * $limit;
// 假设有一个数据库连接 $conn
$sql = "SELECT * FROM products WHERE category = ? LIMIT $limit OFFSET $offset";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s", $_GET['category']);
$stmt->execute();
$result = $stmt->get_result();
$products = $result->fetch_all(MYSQLI_ASSOC);
echo json_encode($products);
?>
$.ajax
方法获取分页数据。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Product Filter with Pagination</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>
<div id="products"></div>
<div id="pagination"></div>
<script>
let currentPage = 1;
const limit = 10;
function loadProducts(page) {
$.ajax({
url: 'get_products.php',
data: { page: page, category: 'electronics' },
success: function(data) {
$('#products').html('');
data.forEach(product => {
$('#products').append(`<div>${product.name} - $${product.price}</div>`);
});
renderPagination(data.totalPages);
}
});
}
function renderPagination(totalPages) {
let paginationHtml = '';
for (let i = 1; i <= totalPages; i++) {
paginationHtml += `<button onclick="loadProducts(${i})">${i}</button>`;
}
$('#pagination').html(paginationHtml);
}
$(document).ready(function() {
loadProducts(currentPage);
});
</script>
</body>
</html>
OFFSET
计算正确,通常是(page - 1) * limit
。通过上述步骤,你可以在过滤产品页面上成功实现分页功能。
领取专属 10元无门槛券
手把手带您无忧上云