PHP笔记-表格及分页功能
2022/1/10 12:33:41
本文主要是介绍PHP笔记-表格及分页功能,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
运行截图如下:
前端代码如下:
Student.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <h1>HelloWorld</h1> <table border="1" cellspacing="1" cellpadding="1"> <thead> <tr> <td>ID</td> <td>名字</td> <td>年龄</td> <td>性别</td> <td>邮箱</td> <td>地址</td> <td>更新时间</td> </tr> </thead> <tbody> {foreach $students as $student} <tr> <td>{$student.id}</td> <td>{$student.name}</td> <td>{$student.age}</td> <td> {if $student.sex eq "m"} 男 {else}女 {/if} </td> <td>{$student.email}</td> <td>{$student.address}</td> <td>{$student.updateTime}</td> </tr> {/foreach} </tbody> </table> <ul> {$pageStr} </ul> </body> </html>
后端关键代码
提供数据的:
StudentController.php
<?php namespace admin\controller; use core\Controller; use home\model\StudentModel; use vendor\Page; class StudentController extends Controller{ public function student(){ $page = $_REQUEST["page"] ?? 1; $studentModel = new StudentModel(); $students = $studentModel->getAllStudents($page); $counts = $studentModel->getCounts(); $cond = array("a" => A, "c" => C, "p" => P); $pageStr = Page::clickPage(URL . "index.php", $counts, $cond, $page); $this->assign("pageStr", $pageStr); $this->assign("students", $students); $this->assign("counts", $counts); $this->display("student.html"); } }
分页代码:
Page.php
<?php namespace vendor; class Page{ public static function clickPage($url, $counts, $cond = array(), $page = 1, $pageCount = 5): string{ //所有页数 $pages = ceil($counts / $pageCount); //上一页和下一页 $prev = $page > 1 ? $page - 1 : 1; $next = $page < $pages ? $page + 1 : $pages; //url上需要补充的内容 $patchInfo = ""; foreach ($cond as $key => $value){ $patchInfo .= $key . "=" . $value . "&"; } //先展示上一页 $click = "<li><a href='{$url}?{$patchInfo}page={$prev}'>上一页</a></li>"; //如果总页数在7以内全都都展示出来 if($pages <= 7){ for($i = 1; $i <= $pages; $i++){ $click .= "<li><a href='{$url}?{$patchInfo}page={$i}'>{$i}</a></li>"; } } else{ //总页数在7页以上 //如果当前选中页数在5页以内,就把前7页全显示了。 if($page <= 5){ for($i = 1; $i <= 7; $i++){ $click .= "<li><a href='{$url}?{$patchInfo}page={$i}'>{$i}</a></li>"; } $click .= "<li><a href='#'>...</a></li>"; } else{ //如果当前选中的在第7页(包括第7页)以上,先展示1,2 $click .= "<li><a href='{$url}?{$patchInfo}page=1'>1</a></li>"; $click .= "<li><a href='{$url}?{$patchInfo}page=2'>2</a></li>"; $click .= "<li><a href='#'>...</a></li>"; //再展示中间页 //如果是最后3页了,就全部展示出来 if($pages - $page <= 3){ for($i = $pages - 4; $i <= $pages; $i++){ $click .= "<li><a href='{$url}?{$patchInfo}page={$i}'>{$i}</a></li>"; } } else{ //展示当前页面的前2页,和后2页 for($i = $page - 2; $i <= $page + 2; $i++){ $click .= "<li><a href='{$url}?{$patchInfo}page={$i}'>{$i}</a></li>"; } $click .= "<li><a href='#'>...</a></li>"; } } } //最后补一个下一页 $click .= "<li><a href='{$url}?{$patchInfo}page={$next}'>下一页</a></li>"; return $click; } }
简单说下逻辑:
http://localhost:63343/IT1995Blog/public/index.php?a=student&c=Student&p=admin&page=2
这个page就是当前页,程序里面写死了是每页5条,a=student,c=Student,p=admin是程序里面的逻辑,这个是必须要加的。所以在Page中会补这个。
这篇关于PHP笔记-表格及分页功能的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-19php8的协程和hyperf的协程有什么区别?-icode9专业技术文章分享
- 2024-12-19php8 的fiber是什么?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-12-05怎么在php8,1 里面开启 debug?-icode9专业技术文章分享
- 2024-11-29使用PHP 将ETH账户的资产汇集到一个账户
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享