Thinkphp5之laypage分頁插件的實現


//一下是laypage所用到的 js
<script type="text/javascript" src="__STATIC__/lib/laypage/1.2/laypage.js"></script>
<script type="text/javascript"> laypage({ cont: 'page11', pages: 18, //假設我們獲取到的是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>

//HTML顯示

<!--顯示分頁按鈕,事先要將bootstrap導入css和js-->
<div style="margin-top:15px; text-align:center;" id="page11"></div>

/上面的 id是自己的設置的,改的話,注意前面的cont: 'page11', 這里也要換。到此前端的准備已經完了。
搜索條件的也要附上URL地址的話,我是這么寫的


//點擊搜索

$("#sou").bind("click",function(event){

event.preventDefault();//這里不懂的可以自己查查(用於取消事件的默認行為 一般是有<from>時,沒有就直接去掉)。

var type=$("#type").val();//獲取假設的搜索條件值

 var url=$(this).attr("souid");//這里的是獲取點擊是要跳轉的地址(例如:souid="<*:U('Custom/customorder')*>" 跳轉地址自己換)

window.location.href=url+"?typeid="+type;

});

 


二、現在是后端的部分

public function semList(){

		//laypage實現分頁倒敘列表查詢
		$nowpage=input('page',1);//獲取post傳來的頁數,如果沒有頁數時,頁數為1
		$totalpage=ceil((model('sem')->count())/10);////$totalpage就是計算你要獲取的最大頁數,ceil 是向前取整,這里是設置為10條數據為1頁(注意括號)//這里盡量簡寫了。

		//下面注意加上 這句 limit(($nowpage-1)*10,10),就是數據控制每頁顯示數據的條數,獲取頁數后乘以設置的條數,獲取該頁的10條(自己設置)數據
		$semList=model('sem')->order('create_time desc')->limit(($nowpage-1)*10,10)->select();
		$count = SemModel::count();
		$this->assign("totalpage",$totalpage);
		$this->assign('count',$count);
		$this->assign('semList',$semList);
		return $this->fetch('sem_list');

	}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM