在 PHP 中实现分页页码动态生成通常需要计算出总页数,并根据当前页数和总页数生成相应的页码。以下是一个简单的示例代码,展示如何实现分页页码动态生成:
<?php // 从数据库或其他数据源中获取数据 $data = get_data_from_database(); // 每页显示的数据数量 $limit = 10; // 当前页码 $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; // 数据总数 $total = count($data); // 计算总页数 $total_pages = ceil($total / $limit); // 确保当前页码不超过总页数 $page = max(1, min($page, $total_pages)); // 获取当前页码的数据 $start = ($page - 1) * $limit; $end = min($start + $limit - 1, $total - 1); $page_data = array_slice($data, $start, $end - $start + 1); // 生成页码链接 $links = ''; $range = 3; // 当前页码左右各显示几个页码链接 for ($i = max(1, $page - $range); $i <= min($page + $range, $total_pages); $i++) { if ($page == $i) { $links .= "<span>$i</span>"; } else { $links .= "<a href=\"?page=$i\">$i</a>"; } } // 输出数据和页码链接 foreach ($page_data as $row) { // 输出数据 echo "<p>{$row['id']}: {$row['name']}</p>"; } // 输出页码链接 echo "<div class=\"pagination\">{$links}</div>"; ?>
在上面的代码中,我们首先从数据库或其他数据源中获取数据,并设置每页显示的数据数量和当前页码。然后,我们计算数据总数和总页数,并根据当前页码获取当前页码的数据。最后,我们根据当前页码和总页数生成页码链接。
在生成页码链接时,我们使用一个循环来生成当前页码左右各显示几个页码链接(在这个例子中使用了固定的 3)。在循环中,我们根据当前页码和总页数生成相应的链接,并使用 max()
和 min()
函数确保页码链接不超过总页数。如果当前页码等于当前循环到的页码,则显示纯文本,否则显示链接。
最后,我们输出数据和页码链接,其中数据使用一个循环来逐个输出,而页码链接则以一个带有样式的 div
元素的形式输出。您可以根据需要调整输出方式和样式。
推荐阅读:
评论