php使用实现layui实现分页
实现Layui分页的基本步骤
在PHP中结合Layui实现分页功能,需要后端处理数据分页逻辑,前端使用Layui的table模块渲染数据。以下是具体实现方式:
后端PHP代码(分页数据处理)
<?php
// 连接数据库
$conn = new mysqli('localhost', 'username', 'password', 'dbname');
// 获取当前页码和每页条数
$page = isset($_GET['page']) ? intval($_GET['page']) : 1;
$limit = isset($_GET['limit']) ? intval($_GET['limit']) : 10;
$offset = ($page - 1) * $limit;
// 查询数据总数
$countResult = $conn->query("SELECT COUNT(*) as total FROM your_table");
$total = $countResult->fetch_assoc()['total'];
// 查询分页数据
$result = $conn->query("SELECT * FROM your_table LIMIT $offset, $limit");
$data = [];
while ($row = $result->fetch_assoc()) {
$data[] = $row;
}
// 返回Layui需要的格式
echo json_encode([
'code' => 0,
'msg' => '',
'count' => $total,
'data' => $data
]);
?>
前端HTML(Layui表格渲染)
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Layui分页示例</title>
<link rel="stylesheet" href="//unpkg.com/layui@2.6.8/dist/css/layui.css">
</head>
<body>
<table id="demo" lay-filter="test"></table>
<script src="//unpkg.com/layui@2.6.8/dist/layui.js"></script>
<script>
layui.use('table', function(){
var table = layui.table;
// 渲染表格
table.render({
elem: '#demo',
url: 'your_api.php', // 后端接口地址
page: true, // 开启分页
cols: [[
{field: 'id', title: 'ID'},
{field: 'name', title: '姓名'},
{field: 'age', title: '年龄'}
]]
});
});
</script>
</body>
</html>
关键参数说明
- page: 当前页码,从GET参数获取
- limit: 每页显示条数,默认10条
- count: 数据总数,用于计算分页数
- data: 当前页的数据数组
自定义分页样式
可以通过修改Layui配置来自定义分页行为:
table.render({
// ...其他配置
limit: 20, // 默认每页显示数
limits: [10, 20, 30, 50], // 每页条数选择项
layout: ['count', 'prev', 'page', 'next', 'limit', 'refresh', 'skip'] // 自定义分页布局
});
注意事项
- 确保后端返回的数据格式符合Layui要求,包含code、msg、count、data字段
- 数据库查询时注意SQL注入防护,建议使用预处理语句
- 跨域请求需要设置CORS头信息
- 生产环境建议添加错误处理逻辑
高级用法
对于复杂场景,可以使用请求参数重载:
table.reload('demo', {
where: { // 传递额外参数
searchKey: $('#searchKey').val()
},
page: { curr: 1 } // 重置页码
});
通过以上方式,可以完整实现PHP后端与Layui前端的分页交互功能。







