You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无表格场景下能否实现分页?是否需完全更改输出样式?

实现分页无需改用表格,现有布局完全兼容!

当然不用改表格!你现在用的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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 11:14:14