当前位置:首页 > CMS教程 > Thinkphp > 列表

thinkPHP3.2.3结合Laypage实现的分页功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-20 15:51:03 浏览: 评论:0 

这篇文章主要介绍了thinkPHP3.2.3结合Laypage实现的分页功能,结合实例形式分析了thinkPHP3.2.3结合Laypage实现分页的model控制器与view视图相关操作技巧,需要的朋友可以参考下。

本文实例讲述了thinkPHP3.2.3结合Laypage实现的分页功能,分享给大家供大家参考,具体如下:

控制器

  1. <?php 
  2. namespace Home\Controller; 
  3. use Think\Controller; 
  4. class IndexController extends Controller { 
  5.   /** 
  6.   *@brief 查询 
  7.   ****/ 
  8.   public function index(){ 
  9.   $choose = I('choose','-6'); 
  10.   $c['easy_hard'] = $choose
  11.     $type=I('typeid',''); 
  12.     $nowpage=I('page',1); 
  13.     if($type == ''
  14.     { 
  15.       if($choose == -6) 
  16.       { 
  17.         $totalpage=ceil((D('data')->count())/10); 
  18.         $infos=D('data')->limit(($nowpage-1)*10,10)->select(); 
  19.       }else
  20.         $totalpage=ceil((D('data')->where($c)->count())/10); 
  21.         $infos=D('data')->where($c)->limit(($nowpage-1)*10,10)->select(); 
  22.       } 
  23.     }else
  24.       if($choose == -6) 
  25.       { 
  26.         $map['data'] = array('like',"%$type%"); 
  27.         $totalpage=ceil((D('data')->where($map)->count())/10); 
  28.         $infos=D('data')->where($map)->limit(($nowpage-1)*10,10)->select(); 
  29.       }else
  30.         $map['data'] = array('like',"%$type%"); 
  31.         $totalpage=ceil((D('data')->where($map)->where($c)->count())/10); 
  32.         $infos=D('data')->where($map)->where($c)->limit(($nowpage-1)*10,10)->select(); 
  33.       } 
  34.     } 
  35.   $this->assign('type',$type); 
  36.     $this->assign('choose',$choose); 
  37.     $this->assign("totalpage",$totalpage); 
  38.     $this->assign("infos",$infos); 
  39.     $this -> display(); 
  40.   } 

视图层

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3. <head> 
  4.   <meta charset="UTF-8"
  5.   <title>Think Demo</title> 
  6.   <script type="text/javascript" src="__PUBLIC__/jquery-1.11.1/jquery.min.js"></script> 
  7.   <script type="text/javascript" src="__PUBLIC__/jquery-1.11.1/jquery.js"></script> 
  8.   <script type="text/javascript" src="__PUBLIC__/layer/layer.js"></script> 
  9.   <script type="text/javascript" src="__PUBLIC__/laypage/laypage.js"></script> 
  10. </head> 
  11. <body> 
  12. <div> 
  13.  <select name="" id="slc1" onchange="return choose()"
  14.   <option value="-6" <if condition="$choose eq -6 "> selected </if> >全部</option> 
  15.   <option value="0" <if condition="$choose eq 0 "> selected </if> >简单</option> 
  16.   <option value="1" <if condition="$choose eq 1 "> selected </if> >一般</option> 
  17.  </select> 
  18.   <input type="text" value="<if condition="$type neq '' "> {$type} </if>" id="type"><button id="sou">搜索</button> 
  19. </div> 
  20. <br> 
  21.   <table border="1" width="500" height="150" > 
  22.         <tr> 
  23.           <th>ID</th> 
  24.           <th>语言</th> 
  25.           <th>难易程度</th> 
  26.           <th>操作</th> 
  27.         </tr> 
  28.         <volist name="infos" id="vo"
  29.         <tr> 
  30.           <th>{$vo.id}</th> 
  31.           <th>{$vo.data}</th> 
  32.           <th> 
  33.             <if condition="$vo.easy_hard eq '0'">简单 
  34.             <else />一般 
  35.             </if
  36.           </th> 
  37.           <th> 
  38.             <a href="javascript:;" rel="external nofollow" rel="external nofollow" onclick="return del({$vo.id});">删除</a> 
  39.             <a href="javascript:;" rel="external nofollow" rel="external nofollow" onclick="return edit({$vo.id});">修改</a> 
  40.           </th> 
  41.         </tr> 
  42.         </volist> 
  43.   </table> 
  44.   <div style="margin-top:15px; text-align:center;" id="page11"></div> 
  45.   <button onclick="return add_()"> 添加 </button> <br /> 
  46. <script type="text/javascript"
  47.   function choose() 
  48.   { 
  49.     var type=$("#type").val(); 
  50.     var checkValue=$("#slc1").val(); 
  51.     window.location.href="?typeid=" rel="external nofollow" rel="external nofollow" +type+"&choose="+checkValue; 
  52.   } 
  53.   $("#sou").bind("click",function(event){ 
  54.     var type=$("#type").val();//获取假设的搜索条件值 
  55.     var checkValue=$("#slc1").val(); 
  56.     window.location.href="?typeid=" rel="external nofollow" rel="external nofollow" +type+'&choose='+checkValue; 
  57.   }); 
  58.   $(function(){ 
  59.       laypage({ 
  60.         cont: 'page11'
  61.         pages: {$totalpage}, //假设我们获取到的是18(后端计算完总页数后将总页数值传过来,放在这里即可(类似{$totalpage})). 
  62.        curr: function(){ //通过url获取当前页,也可以同上(pages)方式获取 
  63.          var page = location.search.match(/page=(\d+)/); 
  64.             return page ? page[1] : 1;//如果没有页数显示时,默认是第一页 
  65.           }(), 
  66.           jump: function(e, first){ //触发分页后的回调 
  67.             if(!first){ //一定要加此判断,否则初始时会无限刷新 
  68.               location.href=setParam("page",e.curr); 
  69.             } 
  70.           } 
  71.       }); 
  72.   }); 
  73.   function setParam(param,value){ 
  74.     var query = location.search.substring(1); 
  75.     var p = new RegExp("(^|)" + param + "=([^&]*)(|$)"); 
  76.     if(p.test(query)){ 
  77.       //query = query.replace(p,"$1="+value); 
  78.       var firstParam=query.split(param)[0]; 
  79.       var secondParam=query.split(param)[1]; 
  80.       if(secondParam.indexOf("&")>-1){ 
  81.         var lastPraam=secondParam.split("&")[1]; 
  82.         return '?'+firstParam+'&'+param+'='+value+'&'+lastPraam; 
  83.       }else
  84.         if(firstParam){ 
  85.           return '?'+firstParam+''+param+'='+value; 
  86.         }else
  87.           return '?'+param+'='+value; 
  88.         } 
  89.       } 
  90.     }else
  91.       if(query == ''){ 
  92.         return '?'+param+'='+value; 
  93.       }else
  94.         return '?'+query+'&'+param+'='+value; 
  95.       } 
  96.     } 
  97.   } 
  98. </script> 
  99. </body> 
  100. </html>

Tags: thinkPHP3 2 3 Laypage分页

分享到: