帮我写一个历史订单页面代码要求包含首页尾页上一页下一页按钮同时显示相邻3个页面按钮
以下是一个简单的历史订单页面的代码,包含首页,尾页,上一页,下一页按钮,同时显示相邻3个页面按钮:
<!DOCTYPE html>
<html>
<head>
<title>历史订单</title>
<style>
/* 样式可以根据需要修改 */
.button {
display: inline-block;
padding: 10px;
border: 1px solid #ccc;
background-color: #f7f7f7;
cursor: pointer;
}
.active {
background-color: #ccc;
color: #fff;
}
</style>
</head>
<body>
<h1>历史订单</h1>
<?php
// 假设有100个订单,每页显示10个
$total = 100;
$per_page = 10;
// 获取当前页码,默认为第一页
$current_page = isset($_GET['page']) ? (int) $_GET['page'] : 1;
// 计算总页数
$total_pages = ceil($total / $per_page);
// 确保当前页码不超出范围
if ($current_page < 1) {
$current_page = 1;
} elseif ($current_page > $total_pages) {
$current_page = $total_pages;
}
// 计算起始订单和结束订单的索引
$start = ($current_page - 1) * $per_page;
$end = $start + $per_page - 1;
// 假设这里是从数据库中获取订单数据的代码
$orders = array();
for ($i = 1; $i <= $total; $i++) {
$orders[] = array(
'order_id' => $i,
'order_date' => date('Y-m-d H:i:s', time() - 3600 * 24 * $i),
'customer_name' => 'Customer ' . $i,
'total_amount' => rand(100, 1000),
);
}
// 显示订单列表
echo '<table>';
echo '<thead><tr><th>订单号</th><th>下单时间</th><th>客户姓名</th><th>订单总金额</th></tr></thead>';
echo '<tbody>';
for ($i = $start; $i <= $end && $i < $total; $i++) {
echo '<tr>';
echo '<td>' . $orders[$i]['order_id'] . '</td>';
echo '<td>' . $orders[$i]['order_date'] . '</td>';
echo '<td>' . $orders[$i]['customer_name'] . '</td>';
echo '<td>' . $orders[$i]['total_amount'] . '</td>';
echo '</tr>';
}
echo '</tbody>';
echo '</table>';
// 显示分页按钮
if ($total_pages > 1) {
echo '<div>';
if ($current_page > 1) {
echo '<a class="button" href="?page=1">首页</a>';
echo '<a class="button" href="?page=' . ($current_page - 1) . '">上一页</a>';
}
for ($i = max(1, $current_page - 3); $i <= min($total_pages, $current_page + 3); $i++) {
if ($i == $current_page) {
echo '<span class="button active">' . $i . '</span>';
} else {
echo '<a class="button" href="?page=' . $i . '">' . $i . '</a>';
}
}
if ($current_page < $total_pages) {
echo '<a class="button" href="?page=' . ($current_page + 1) . '">下一页</a>';
echo '<a class="button" href="?page=' . $total_pages . '">尾页</a>';
}
echo '</div>';
}
?>
</body>
</html>
代码解释:
- 首先定义了
$total和$per_page变量,分别表示总订单数和每页显示的订单数。 - 然后获取当前页码,如果没有指定默认为第一页。
- 计算总页数,并确保当前页码不超出范围。
- 根据当前页码计算起始订单和结束订单的索引。
- 假设这里是从数据库中获取订单数据的代码,实际应用中需要根据具体情况修改。
- 显示订单列表,根据起始和结束索引遍历订单数组,并输出表格的每一行。
- 显示分页按钮,如果总页数大于1才需要显示。
- 首先判断当前页码是否大于1,如果是则显示首页和上一页按钮。
- 然后根据当前页码和总页数计算要显示的相邻3个页面按钮的页码,注意要确保页码不超出范围。
- 遍历要显示的页码,如果是当前页码则显示为一个带样式的按钮,否则显示为一个普通按钮。
- 最后判断当前页码是否小于总页数,如果是则显示下一页和尾页按钮。
原文地址: https://www.cveoy.top/t/topic/ba81 著作权归作者所有。请勿转载和采集!