layPage是一款多功能的js分页组件,即适用于异步分页,又可用于传统的整页刷新跳页,还支持信息流加载,并且可无缝迁移至Node.js平台。layPage不依赖于任何第三方库,直接拿来用即可,它的接口继承了layui系列组件的一贯简洁,极易上手。
http://sentsin.com/layui/laypage/
新增 demo(2016-01-14)
php 部分
js 中 laypage(新版本) 跳转分页
js 中 laypage(新版本) ajax 分页
http://sentsin.com/layui/laypage/
新增 demo(2016-01-14)
php 部分
- function index(){
- header('Content-Type:text/html;charset=utf-8');
- // 获取当前页码,默认第一页,设置每页默认显示条数
- $nowpage = I('get.page', 1, 'intval');
- $limits = 8;
- // 获取总条数
- $count = M('Article') -> where(array('status'=>array('egt', 0))) -> count();
- // 计算总页面
- $allpage = ceil($count / $limits);
- $allpage = intval($allpage);
- $lists = M('Article') -> where(array('status'=>array('egt', 0)))
- -> page($nowpage, $limits) // page 方法分页
- -> order('createtime desc')
- -> select();
- // 跳转分页输出
- $this -> assign('lists', $lists);
- $this -> assign('allpage', $allpage);
- $this -> assign('nowpage', $nowpage);
- $this->display();
- /*
- // ajax 分页输出
- $info = array('lists'=>$lists,'allpage'=>$allpage,'nowpage'=>$nowpage);
- $this->ajaxReturn($info,'json');
- */
- }
复制代码
- // 分页
- laypage({
- cont: 'show_pages', // 分页容器
- pages: "{$allpage}", // 总页数
- skip: true, //是否开启跳页
- curr: function(){
- var page = "{$nowpage}"; // 当前页(后台获取到的)
- return page ? page : 1; // 返回当前页码值
- }(),
- jump: function(e, first){ //触发分页后的回调(单击页码后)
- if(!first){ //一定要加此判断,否则初始时会无限刷新
- var urls = "{:U('article/index',array('page'=>'pageval'))}";
- var nowpage = e.curr; // (被单击的页码)
- urls = urls.replace('pageval',nowpage); // 替换链接样式和页码
- window.location.href = urls;
- }
- }
- });
复制代码
- function demo(curr){
- $.getJSON("{:U('article/index')}", {
- page: curr //向服务端传的参数,此处只是演示
- }, function(res){ // 服务器返回的 json 结果
- // 这里处理 res.lists 中的数据内容,使用 html() 方法显示
- // 略……
- //显示分页
- laypage({
- cont: 'show_pages', // 容器
- pages: res.allpage, // 总页数(后台的)
- curr: res.nowpage, //当前页(后台获取到的)
- jump: function(obj, first){ //触发分页后的回调(单击页码后)
- if(!first){ //点击跳页触发函数自身,并传递当前页:obj.curr
- demo(obj.curr); // (被单击的页码)
- }
- }
- });
- });
- };
- // 初始化运行
- demo();