以下方法是基于THINKPHP5框架开发,实现上一页/下一页按钮式的分页功能,如下图

首先是简单的不涉及分类功能的分页

控制器代码

/**分页功能* 参数:p 当前页码数*      listpage 每页显示的数据条数*      totalpage 总页数* */
public function index(){$p=input('p',1,'intval');//当前页码数,默认显示第一页$listpage=input('listpage',8,'intval');//每页显示的数据条数$count=Db::name('shujubiao')->count();//数据总数$totalpage=ceil($count/$listpage);//总页数$product=Db::name('shujubiao')->page($p,$listpage)->select();$this->assign('product',$product);$this->assign('p',$p);$this->assign('totalpage',$totalpage);return $this->view->fetch('页面');
}

前端代码,样式自行调试

<div class="page-box mt50 box flex_b"><input type="hidden" id="page" value="{$p}"><input type="hidden" id="totalpage" value="{$totalpage}"><a href="javascript:;" class="page-item up">上一页</a><a href="javascript:;" class="page-item down">下一页</a>
</div>

js代码

//分页
//上一页
$(document).on('click', '.page-box .up', function() {var page = $("#page").val();page--;if (page < 1) {page = 1;alert('已经是第一页了');return false;}location.href = "/模块名/控制器名/方法名/p/" + page + '.html';//跳转到自己的控制器方法
});
//下一页
$(document).on('click', '.page-box .down', function() {var page = $("#page").val();var totalpage = $("#totalpage").val();page++;if (page > totalpage) {page = totalpage;alert('已经是最后一页了');return false;}location.href = "/模块名/控制器名/方法名/p/" + page + '.html';//跳转到自己的控制器方法
});

以上就可以实现简单的上一页/下一页功能;
*
*

分页功能通常会参杂分类功能,下面是此种样式下含有分类功能的分页代码。

控制器代码(和上面普通分页功能相比,只是添加了分类where条件)

public function index(){//参数 class_id 分类id$class_id=input('class_id','','intval');//参数@所属分类idif(!$class_id){//如果没有分类,显示全部商品}else{$classidarr=[];$classidarr[0]=$class_id;$classidarr=array_merge($classidarr,$this->loop($class_id));//所有下级分类id集合$where['pclass_id']=array('in',$classidarr);//pclass_id为关联外键}//下面代码和普通分页代码基本一样,添加一个分类的where条件$p=input('p',1,'intval');//当前页码数,默认显示第一页$listpage=input('listpage',8,'intval');//每页显示的数据条数$count=Db::name('shujubiao')->where($where)->count();//对应分类下的数据总数$totalpage=ceil($count/$listpage);//总页数$product=Db::name('shujubiao')->where($where)->page($p,$listpage)->select();$this->assign('product',$product);$this->assign('p',$p);$this->assign('totalpage',$totalpage);$this->assign('class_id',$class_id);//分类idreturn $this->view->fetch('页面');
}
/*
* 获得所有下级分类id
* 参数:$pid 上级分类id
* */
private function loop($pid){$idsarr=db('分类表')->where('pid',$pid)->column('id');if($idsarr){foreach($idsarr as $id){$idsarr=array_merge($idsarr,$this->loop($id));}}return $idsarr;
}

前端代码,样式自行调试(和上面html代码相比,添加了分类参数的传递)

<div class="page-box mt50 box flex_b"><input type="hidden" id="page" value="{$p}"><input type="hidden" id="totalpage" value="{$totalpage}"><input type="hidden" id="class_id" value="{$class_id}"><a href="javascript:;" class="page-item up">上一页</a><a href="javascript:;" class="page-item down">下一页</a>
</div>

js代码(和上面js代码相比,添加了分类判断及参数传递)

//分页
//上一页
$(document).on('click', '.page-box .up', function() {var page = $("#page").val();var classid = $("#class_id").val();if (!classid) {classid = 0;}page--;if (page < 1) {page = 1;alert('已经是第一页了');return false;}location.href = "/模块名/控制器名/方法名/p/" + page+ "/class_id/" + classid+ '.html';//跳转到自己的控制器方法
});
//下一页
$(document).on('click', '.page-box .down', function() {var page = $("#page").val();var totalpage = $("#totalpage").val();var classid = $("#class_id").val();if (!classid) {classid = 0;}page++;if (page > totalpage) {page = totalpage;alert('已经是最后一页了');return false;}location.href = "/模块名/控制器名/方法名/p/" + page+ "/class_id/" + classid + '.html';//跳转到自己的控制器方法
});

以上就可以实现与分类结合的上一页/下一页功能。
参数的传递方法不限,可根据自己要求进行修改调试。

PHP实现分页功能(一)上一页/下一页(含有分类功能的分页)相关推荐

  1. html内容页上一页下一页,帝国CMS内容页增加内容分页上一页标签功能!

    帝国CMS一直以来升级没有提供内容分页的上一页标签功能,只有一个:内容页下一页[!--next.page--] 标签!所以下面就是要改造一下这个标签,实现内容页上一页的功能! 步骤如下: 打开e/cl ...

  2. 简单分页,无需插件 实现 上一页|下一页 分页功能

    分页功能 五花八门,插件的使用也很方便.最近做项目,分页功能是写好的了,利用bootstarp 简单实现的, 类似于这种 但由于数据越来越多,这种循环的方式很不好看.于是想到上一页| 下一页 分页 的 ...

  3. php分页上一页下一页判断,分页(上一页,下一页)

    实现功能:出现首页,下一页,上一页,尾页 $pagesize=2;//分页,已知每页显示几条记录,$pagesize //我们通过在地址栏传递page参数的形式获得当前是第几页,?page=1就是第一 ...

  4. php分页不跳转,分页源代码,分页时上一页下一页不显示,但可以跳转

    分页源代码,分页时上一页下一页不显示,但可以跳转 $sql="select * from product where pronum like'%$key%' or pdes like '%$ ...

  5. html分页首页上一页下一页,HTML静态分页(形如:首页,上一页,下一页,尾页)...

    在HTML中有时候我们会用到静态分页,一次拿回一定量的数据结果条目,我们会以形如:第2页,共12页  首页 上一页 下一页 尾页 的方式进行静态分页,以下是该种静态分页的代码,供兄弟姐妹们参考. fu ...

  6. Asp.net(c#)GridView分页时用图片显示上一页,下一页

    Asp.net(c#)GridView分页时用图片显示上一页,下一页 效果展示: 需要的两张图片:    详细代码: Code <%@ Page Language="C#"  ...

  7. layui table 分页 上一页 : 下一页 回调

    layui table 分页回调 上一页 : 下一页 回调 学习类的文章,因为最近需要用到这个,所以作为学习记录一下 回调的参数是 done table.render({elem: '#main',w ...

  8. java实现的分页方法(上一页下一页)

    /**按上一页下一页分页的方法    * @param jspName文件名(显示上一页.下一页)    * @param currentPage 当前页    * @param zs 记录总数    ...

  9. 翻页 java_jsp实现上一页下一页翻页功能

    [导读]前段时间一直忙于期末考试和找实习,好久没写博客了.这段时间做了个小项目,包含了翻页和富文本编辑器Ueditor的两个知识点,Ueditor玩的还不是很深,打算玩深后再写篇博客. 前段时间一直忙 ...

  10. php下一页的代码,PHP简单实现上一页下一页功能示例

    本文实例讲述了PHP简单实现上一页下一页功能.分享给大家供大家参考,具体如下: 思路整理: 现在好多人用id的增1和减1实现上一篇和下一篇,但是难道文章ID不会断了吗?所以你要知道上个ID和个ID是多 ...

最新文章

  1. review what i studied `date` - 2017-4-12
  2. 怎么使用ar打包静态库
  3. 油管螺纹尺寸对照表_yt15硬质合金刀片尺寸|A320焊接刀头参数
  4. Wait Event SQL*Net more data to client
  5. iOS 之 UITextField
  6. C语言实现简单的内存管理机制
  7. Android画笔自定义控件三要素
  8. hashmap java 便利_java HashMap 循环遍历map的方法
  9. socket编程和进程线程同步跟新
  10. 【论文写作】毕业论文写作套路之正文(2)
  11. 一款基于SpringCloudAlibaba从0到1手敲的商城项目mtg-shop
  12. 【Java常见异常】InaccessibleObjectException异常处理方法
  13. 微信端跳到外部浏览器进行apk文件下载
  14. Java中强、软、弱、虚引用
  15. Protothreads:一个“蝇量级” C 语言协程库
  16. kubernetes Auditing 实战
  17. Java测试框架系列:Mockito 详解:第三部分:结果验证
  18. PyInstaller 的安装和使用(python生成exe文件)_联网安装
  19. 西亚斯微型计算机技术考试卷,西亚斯 | 看到此文,期末考试你还敢作弊吗?
  20. 军品研制过程评审活动-(一)论证阶段

热门文章

  1. fullPage学习
  2. Android4.1
  3. 局域网、以太网、无线局域网学习笔记
  4. 三只松鼠营收持续下滑:市值两天缩水28亿元,能否熬过漫漫转型路
  5. 宇言(四):关于时间循环
  6. 微信公众测试号推送天气(最近超火的小玩意)给女友一个满满的爱
  7. Linux相关命令(三)
  8. 前端设置画布的高度_前端页面内的高度、位置简述
  9. [译]const T vs. T const ——Dan Saks 【翻译】
  10. Wireshark数据抓包分析之互联网协议(IP协议)