首页 > 语言 > PHP > 正文

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

2024-05-05 00:03:57
字体:
来源:转载
供稿:网友

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

控制器

<?phpnamespace 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){ //一定要加此判断,否则初始时会无限刷新              location.href=setParam("page",e.curr);            }          }      });  });  function setParam(param,value){    var query = location.search.substring(1);    var p = new RegExp("(^|)" + param + "=([^&]*)(|$)");    if(p.test(query)){      //query = query.replace(p,"$1="+value);      var firstParam=query.split(param)[0];      var secondParam=query.split(param)[1];      if(secondParam.indexOf("&")>-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框架的PHP程序设计有所帮助。


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选