随着现代互联网技术的不断发展,网站的访问量越来越大,为了方便用户访问数据,分页功能成为了现代网站必不可少的功能之一。在thinkphp3.2框架中,分页功能也十分灵活,可以自定义分页样式和页码跳转功能。本文将介绍thinkphp3.2中分页页码跳转功能的实现方法和注意事项。
一、ThinkPHP3.2的分页功能
在ThinkPHP3.2框架中,可以通过以下方法实现简单的分页功能:
// 查询数据$list = M('User')->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();// 实例化分页类$Page = new ThinkPage($count,$pageSize);// 输出分页html$this->assign('page',$Page->show());
其中,$list为查询到的数据,$where为查询条件,$count为查询数据总数,$pageSize为每一页显示的数据量。实例化ThinkPage类后,即可通过$Page->show()方法输出分页html。
二、自定义分页样式
立即学习“PHP免费学习笔记(深入)”;
在ThinkPHP3.2框架中,可以通过以下方法自定义分页样式:
定义分页样式
在当前项目中创建一个名为Page.class.php的文件,将以下代码复制到该文件中:
'共 %TOTAL_ROW% 条记录', 'prev' => '< '>>', 'first' => '1...', 'last' => '...%TOTAL_PAGE%', 'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%', ); private $totalRows = 0; // 总行数 private $listRows = 20; // 每页显示行数 private $totalPages = 0; // 总页数 private $nowPage = 1; // 当前页数 private $firstRow = 1; // 起始行数 private $varPage = 'page'; // 分页变量名 private $p = 'p'; // 分页参数名 private $url = ''; // 当前链接URL private $baseUrl = ''; // 分页基础URL private $params = array(); // 分页跳转时要带的参数 private $anchor = ''; // 锚点参数 // 构造方法 public function __construct($totalRows,$listRows='',$p='page'){ $this->totalRows = $totalRows; $this->varPage = $p; if (!empty($listRows)) { $this->listRows = $listRows; } $this->totalPages = ceil($this->totalRows/$this->listRows); //总页数 $this->nowPage = !empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1; if(!empty($this->totalPages) && $this->nowPage>$this->totalPages) { $this->nowPage = $this->totalPages; } $this->firstRow = $this->listRows*($this->nowPage-1); } // 显示分页 public function show($url='') { if (0 == $this->totalRows) { return ''; } // 记录当前URL $this->url = empty($url) ? U(ACTION_NAME).'/' : $url; // 获取当前页码 $this->nowPage = !empty($_GET[$this->varPage])?intval($_GET[$this->varPage]):1; // 计算分页信息 $this->totalPages = ceil($this->totalRows/$this->listRows); // 分页处理 if($this->totalPages > $this->rollPage){ $linkPage = "- "; $inum = floor($this->rollPage/2); if($this->nowPage lastSuffix=false; } if($this->nowPage > 1){ $this->addUrl($linkPage,$this->nowPage-1,'上一页','class="prev"'); } for($i = 1; $i rollPage; $i++){ if(($this->nowPage+$inum) >= $this->totalPages && $this->totalPages > $this->rollPage){ $page = $this->totalPages-$this->rollPage+$i; }else{ $page = $this->nowPage-$inum+$i; } if($page > 0 && $page != $this->nowPage){ if($page totalPages){ $this->addUrl($linkPage,$page,'第'.$page.'页',''); }else{ break; } }else{ if($page > 0 && $this->rollPage totalPages){ $this->addUrl($linkPage,$page,'第'.$page.'页',''); } } } if($this->nowPage totalPages){ $this->addUrl($linkPage,$this->nowPage+1,'下一页','class="next"'); } if($this->lastSuffix){ $this->addUrl($linkPage,$this->totalPages,'最后一页'); } $linkPage.='
- "; for($i=1;$itotalPages;$i++){ if($this->nowPage==$i) { $linkPage.='
- '.$i.' '; } else { $this->addUrl($linkPage,$i,'第'.$i.'页',''); } } $linkPage.='
使用自定义分页样式
在控制器中引入自定义分页样式,并以以下方式使用:
阿贝智能
阿贝智能是基于AI技术辅助创作儿童绘本、睡前故事和有声书的平台,助你创意实现、梦想成真。
17 查看详情
// 引入分页类import("Think.Page");// 查询数据总数$count = M('User')->where($where)->count();// 实例化分页类$Page = new ThinkPage($count,$pageSize);// 自定义分页样式$Page->setConfig('prev', '上一页');$Page->setConfig('next', '下一页');$Page->setConfig('first', '第一页');$Page->setConfig('last', '最后一页');$Page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%');// 查询数据$list = M('User')->where($where)->order('id desc')->limit($Page->firstRow.','.$Page->listRows)->select();// 输出分页html$this->assign('page',$Page->show());
三、分页页码跳转功能
在ThinkPHP3.2框架中,分页页码跳转功能通过在分页样式中添加输入框和按钮实现。添加页码跳转功能的步骤如下:
修改分页样式
在自定义分页样式中添加一个输入框和一个按钮:
$Page->setConfig('theme', '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% ');
使用分页页码跳转功能
在视图文件中,可以直接使用自定义的分页样式,并实现页码跳转功能:
其中,在自定义分页样式中,使用 “__PAGE__” 和 “__HREF__” 分别表示当前页码和跳转链接。在输入框中输入跳转页码,点击按钮即可进行页码跳转。
总结
在ThinkPHP3.2框架中,分页页码跳转功能可以通过在分页样式中添加输入框和按钮实现。使用自定义分页样式可以使分页样式更加美观,同时也可以实现更多特定的分页需求。
以上就是ThinkPHP3.2中分页页码跳转功能的实现和注意事项的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/461205.html
微信扫一扫
支付宝扫一扫