无表格场景下能否实现分页?是否需完全更改输出样式?
实现分页无需改用表格,现有布局完全兼容!
当然不用改表格!你现在用的Bootstrap栅格(div.row+col-*)布局完全可以实现分页,根本不需要调整现有输出样式。分页的核心是后端控制数据截取,前端只需要配合展示对应页的数据和分页导航就行,我给你拆解具体步骤:
1. 后端PHP处理分页逻辑
首先要在PHP里实现数据的分页截取,这是分页的核心:
// 获取当前页码,默认显示第1页 $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // 定义每页展示的卡片数量(按你的布局,一行3个,设为6就是2行,合理) $perPage = 6; // 计算数据库查询的偏移量 $offset = ($page - 1) * $perPage; // 假设你的数据库连接是$conn,修改查询语句,只取当前页的数据 $query = "SELECT * FROM companies LIMIT $offset, $perPage"; $result = mysqli_query($conn, $query); $company = mysqli_fetch_all($result, MYSQLI_ASSOC); // 获取总数据量,用来计算总页数 $totalQuery = "SELECT COUNT(*) FROM companies"; $totalResult = mysqli_query($conn, $totalQuery); $total = mysqli_fetch_row($totalResult)[0]; $totalPages = ceil($total / $perPage);
2. 保留现有前端布局不变
你现在的div.row+卡片布局完全不用改,因为循环的$company数组已经是当前页的子集数据了:
<div class="row"> <?php if ($company != null): ?> <?php foreach ($company as $row): ?> <div class="col-lg-4 col-md-6 col-sm-6 col-xs-12"> <div class="job-grid"> <div class="job-title-sec"> <div class="thumb"><a href="#"><?php echo $row['logo']; ?></a></div> <div class="c-logo"> <img src="http://placehold.it/235x115" alt="<?php echo $row['company_name']; ?>"> </div> <!-- 这里保留你原来的其他卡片内容,比如职位名称、公司信息等 --> </div> </div> </div> <?php endforeach; ?> <?php else: ?> <p class="col-12 text-center">暂无公司信息</p> <?php endif; ?> </div>
3. 添加分页导航组件
在上述布局的下方,加上Bootstrap风格的分页导航(和你的现有样式统一):
<nav aria-label="分页导航"> <ul class="pagination justify-content-center mt-4"> <!-- 上一页按钮 --> <li class="page-item <?php echo ($page == 1) ? 'disabled' : ''; ?>"> <a class="page-link" href="?page=<?php echo $page - 1; ?>" tabindex="-1">上一页</a> </li> <!-- 页码按钮组(只显示当前页前后2个页码,避免过多页码) --> <?php for ($i = max(1, $page - 2); $i <= min($totalPages, $page + 2); $i++): ?> <li class="page-item <?php echo ($page == $i) ? 'active' : ''; ?>"> <a class="page-link" href="?page=<?php echo $i; ?>"><?php echo $i; ?></a> </li> <?php endfor; ?> <!-- 下一页按钮 --> <li class="page-item <?php echo ($page == $totalPages) ? 'disabled' : ''; ?>"> <a class="page-link" href="?page=<?php echo $page + 1; ?>">下一页</a> </li> </ul> </nav>
关键说明
- 分页和前端布局无关:不管是用表格、div栅格还是其他布局,分页的核心都是后端只返回当前页需要的数据,前端负责渲染这些数据+分页导航。
- 我这里用了Bootstrap的分页组件,和你现有布局的样式体系一致,不需要额外调整CSS。
内容的提问来源于stack exchange,提问作者Cjay
相关产品推荐
相关产品推荐

