thinkPHP3.2.3結合Laypage實現分頁功能

來源:互聯網
上載者:User
這篇文章主要介紹了thinkPHP3.2.3結合Laypage實現的分頁功能,結合執行個體形式分析了thinkPHP3.2.3結合Laypage實現分頁的model控制器與view視圖相關操作技巧,需要的朋友可以參考下

本文執行個體講述了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><p> <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></p><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>  <p style="margin-top:15px; text-align:center;" id="page11"></p>  <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>

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.