php自定义分页类
<?php
class Paging
{
private $totalStrip; //总条数
private $pageStrip; //每页条数
private $totalPages; //总页数
private $url; //当前页面的url
private $nowPage; //当前的页码
private $aroundPage; //当前页左右条数
public function __construct($totalStrip,$pageStrip,$aroundPage)
{
$this->totalStrip = $totalStrip; //总条数
$this->pageStrip = $pageStrip??5; //每页条数
$this->totalPages = $this->getTotalPages();//总页数
$this->url = $this->getUrl(); //当前页面的url
$this->nowPage = $this->getNowPage(); //当前的页码
$this->aroundPage = $aroundPage??2; //当前页左右条数
}
//总页数
private function getTotalPages()
{
return ceil($this->totalStrip/$this->pageStrip);
}
//当前页面的url
private function getUrl()
{
return $_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];
}
//当前的页码
private function getNowPage()
{
return isset($_GET['page'])?$_GET['page']:1;
}
//首页
private function firstPage()
{
return "<a href='{$this->url}?page=1'>首页</a>";
}
//上一页
private function prevPage()
{
$prevPage = $this->nowPage - 1;
return "<a href='{$this->url}?page={$prevPage}'>上一页</a>";
}
//当前页之前
private function leftPage()
{
$str = '';
for($i=$this->aroundPage; $i >= 1; $i--){
$Page = $this->nowPage-$i;
if($Page > 0){
$str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
} }
return $str;
}
//当前页
private function toNowPage()
{
return "<a>$this->nowPage</a>";
}
//当前页之后
private function rightPage()
{
$str = '';
for($i=1; $i <= $this->aroundPage; $i++){
$Page = $this->nowPage+$i;
if($Page < $this->totalPages) {
$str .= "<a href='{$this->url}?page=$Page'>$Page</a>";
}
}
return $str;
}
//下一页
private function nextPage()
{
$nextPage = $this->nowPage + 1;
return "<a href='{$this->url}?page={$nextPage}'>下一页</a>";
}
//尾页
private function lastPage()
{
return "<a href='{$this->url}?page=$this->totalPages'>尾页</a>";
}
public function show()
{
$str = "";
if($this->nowPage > 1){
$str .= $this->firstPage();
$str .= $this->prevPage();
$str .= $this->leftPage();
} $str .= $this->toNowPage();
if($this->nowPage < $this->totalPages){
$str .= $this->rightPage();
$str .= $this->nextPage();
$str .= $this->lastPage();
} return $str;
}
}
//$a = new Paging(20,3,2);
//echo $a->show();
php自定义分页类的更多相关文章
- Django 自定义分页类
分页类代码: class Page(object): ''' 自定义分页类 可以实现Django ORM数据的的分页展示 输出HTML代码: 使用说明: from utils import mypag ...
- thinkphp自定义分页类
先来看下这个分页的样式,没写css,确实丑 什么时候写样式再来上传下css吧...... 就是多一个页面跳转功能 先把这个代码贴一下 <?php namespace Component; cla ...
- PHP24 自定义分页类
分页类的定义 <?php /** * Class MyPage 分页类 * @package core */ class MyPage { private $totalCount; //数据表中 ...
- php : 自定义分页类
Page.class.php : <?php namespace Tools; class Page { private $total; //数据表中总记录数 private $listRows ...
- python 全栈开发,Day115(urlencode,批量操作,快速搜索,保留原搜索条件,自定义分页,拆分代码)
今日内容前戏 静态字段和字段 先来看下面一段代码 class Foo: x = 1 # 类变量.静态字段.静态属性 def __init__(self): y = 6 # 实例变量.字段.对象属性 # ...
- python---django中自带分页类使用
请先看在学习tornado时,写的自定义分页类:思路一致: python---自定义分页类 1.基础使用: 后台数据获取: from django.core.paginator import Pagi ...
- [ Laravel 5.6 文档 ]laravel数据库操作分页(自定义分页实现和自定义分页样式)
简介 在其他框架中,分页可能是件非常痛苦的事,Laravel 让这件事变得简单.易于上手.Laravel 的分页器与查询构建器和 Eloquent ORM 集成在一起,并开箱提供方便的.易于使用的.基 ...
- 好用的ASP.NET 分页类 简单好用 支持 AJAX 自定义文字
在做网站没用 JS UI控件时 很实用 用法: var ps=new PageString(); /*可选参数*/ ps.SetIsEnglish = true;// 是否是英文 (默认:false) ...
- TP5 分页类,自定义样式
结合X-admin 后台框架 在做项目,为了保持分页风格的一致,所以需要自定义 一个分页类. 一.在项目的 extend 目录,创建 cus 目录 二.创建 Page 分页类,代码如下 <?ph ...
- ThinkPHP3验证码、文件上传、缩略图、分页(自定义工具类、session和cookie)
验证码 TP框架中自带了验证码类 位置:Think/verify.class.php 在LoginController控制器中创建生存验证码的方法 login.html登陆模板中 在LoginCont ...
随机推荐
- 06_Linux基础-NGINX和浏览器、网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本
06_Linux基础-NGINX和浏览器.网页的关系-云服务器ssh登陆-安装NGINX-上传网页-压缩命令-xz-gzip-bzip2-zip-tar-配置NGINX服务器支持下载功能-备份脚本 一 ...
- 【loj2538】 【PKUWC 2018】Slay the Spire dp
我们不难发现,假设抽了x张攻击牌,y张强化牌,那么肯定是打出尽可能多张的强化牌后,再开始出攻击牌(当然最少要一张攻击牌) 我们设G(i,j)表示:所有(抽到的攻击牌牌数为i,打出的攻击牌牌数为j)的方 ...
- Oracle PLM,协同研发的产品生命周期管理平台
官网:Oracle PLM - 方正璞华 适用企业:电子高科技.机械制造.医疗器械.化工行业等大型企业和中小型企业 咨询热线:4006-160-730 申请试用.预约演示.产品询价 邮箱:jiangc ...
- 跟羽夏学 Ghidra ——导航
写在前面 此系列是本人一个字一个字码出来的,包括示例和实验截图.本人非计算机专业,可能对本教程涉及的事物没有了解的足够深入,如有错误,欢迎批评指正. 如有好的建议,欢迎反馈.码字不易,如果本篇文章 ...
- 优化过的containerd配置文件:config.toml
disabled_plugins = [] imports = [] oom_score = 0 plugin_dir = "" required_plugins = [] roo ...
- 6.第五篇 安装keepalived与Nginx
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483796&idx=1&sn=347664de ...
- Redis从入门到高级笔记【涵盖重点面试题】
NoSQL数据库 DBEngines网站中会统计目前数据库在全世界的排名 1.1 什么是NoSQL 最常见的解释是"non-relational",很多人说它是"Not ...
- 银河麒麟安装node,mysql,forever环境
这就是国产银河系统的界面,测试版本是麒麟V10 链接: https://pan.baidu.com/s/1_-ICBkgSZPKvmcdy1nVxVg 提取码: xhep 一.传输文件 cd /hom ...
- H5调用微信支付
这里用的是 vue项目; 首先在mounted中判断是否有openId,如果没有,则去获取 let openid = localStorage.getItem('openid'); if (!open ...
- 对list集合中元素按照某个属性进行排序
test 为集合中的元素类型(其中包含i属性) Collections.sort(list,(test o1, test o2) -> { if (o1.getI() != o2.getI()) ...