thinkPHP3.2.3结合Laypage实现的分页功能示例
2018-09-07 14:02
本文实例讲述了thinkPHP3.2.3结合Laypage实现的分页功能。分享给大家供大家参考,具体如下:
控制器
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { /** *@brief 查询 ****/ public function index(){ $choose = I(choose,-6); $c[easy_hard] = $choose; $type=I(typeid,); $nowpage=I(page,1); if($type == ) { if($choose == -6) { $totalpage=ceil((D(data)->count())/10); $infos=D(data)->limit(($nowpage-1)*10,10)->select(); }else{ $totalpage=ceil((D(data)->where($c)->count())/10); $infos=D(data)->where($c)->limit(($nowpage-1)*10,10)->select(); } }else{ if($choose == -6) { $map[data] = array(like,%$type%); $totalpage=ceil((D(data)->where($map)->count())/10); $infos=D(data)->where($map)->limit(($nowpage-1)*10,10)->select(); }else{ $map[data] = array(like,%$type%); $totalpage=ceil((D(data)->where($map)->where($c)->count())/10); $infos=D(data)->where($map)->where($c)->limit(($nowpage-1)*10,10)->select(); } } $this->assign(type,$type); $this->assign(choose,$choose); $this->assign(totalpage,$totalpage); $this->assign(infos,$infos); $this -> display(); } }
视图层
<!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8> <title>Think Demo</title> <script type=text/javascript src=__PUBLIC__/jquery-1.11.1/jquery.min.js></script> <script type=text/javascript src=__PUBLIC__/jquery-1.11.1/jquery.js></script> <script type=text/javascript src=__PUBLIC__/layer/layer.js></script> <script type=text/javascript src=__PUBLIC__/laypage/laypage.js></script> </head> <body> <div> <select name= id=slc1 onchange=return choose()> <option value=-6 <if condition=$choose eq -6 > selected </if> >全部</option> <option value=0 <if condition=$choose eq 0 > selected </if> >简单</option> <option value=1 <if condition=$choose eq 1 > selected </if> >一般</option> </select> <input type=text value=<if condition=$type neq > {$type} </if> id=type><button id=sou>搜索</button> </div> <br> <table border=1 width=500 height=150 > <tr> <th>ID</th> <th>语言</th> <th>难易程度</th> <th>操作</th> </tr> <volist name=infos id=vo> <tr> <th>{$vo.id}</th> <th>{$vo.data}</th> <th> <if condition=$vo.easy_hard eq 0>简单 <else />一般 </if> </th> <th> <a href=javascript:; rel=external nofollow rel=external nofollow onclick=return del({$vo.id});>删除</a> <a href=javascript:; rel=external nofollow rel=external nofollow onclick=return edit({$vo.id});>修改</a> </th> </tr> </volist> </table> <div style=margin-top:15px; text-align:center; id=page11></div> <button onclick=return add_()> 添加 </button> <br /> <script type=text/javascript> function choose() { var type=$(#type).val(); var checkValue=$(#slc1).val(); window.location.href=?typeid= rel=external nofollow rel=external nofollow +type+&choose=+checkValue; } $(#sou).bind(click,function(event){ var type=$(#type).val();//获取假设的搜索条件值 var checkValue=$(#slc1).val(); window.location.href=?typeid= rel=external nofollow rel=external nofollow +type+&choose=+checkValue; }); $(function(){ laypage({ cont: page11, pages: {$totalpage}, //假设我们获取到的是18(后端计算完总页数后将总页数值传过来,放在这里即可(类似{$totalpage})). curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取 var page = location.search.match(/page=(\d+)/); return page ? page[1] : 1;//如果没有页数显示时,默认是第一页 }(), jump: function(e, first){ //触发分页后的回调 if(!first){ //一定要加此判断,否则初始时会无限刷新exOf(&)>-1){ var lastPraam=secondParam.split(&)[1]; return ?+firstParam+&+param+=+value+&+lastPraam; }else{ if(firstParam){ return ?+firstParam++param+=+value; }else{ return ?+param+=+value; } } }else{ if(query == ){ return ?+param+=+value; }else{ return ?+query+&+param+=+value; } } } </script> </body> </html>
更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。
希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。
文章标题:thinkPHP3.2.3结合Laypage实现的分页功能示例
文章链接:http://soscw.com/index.php/essay/13142.html