Rumah  >  Artikel  >  php教程  >  小白 关于使用laypage分页 的运用简述

小白 关于使用laypage分页 的运用简述

WBOY
WBOYasal
2016-08-04 08:56:241242semak imbas

本人小白一枚,所以之前都是用自带的分页,后来有大神推荐我了这个,感觉不错,所以就推荐一下,分页一般是用GET来传值的,所以,一旦要进行搜索执行时,需把搜索值加在URL上,否则会点击下一页,搜索条件被刷掉,第一次发帖,(欢迎大神给小的指点改进),主要是写给同为小白苦苦挣扎的小伙伴们看的(共勉)。
//这里是前端页面需要引入的文件,去 http://laypage.layui.com/ 官网下载放在项目下即可(我将文件放在了Public下,然后再调用出来),<script></script>//好像很实用的样子,后端的同学再也不用写分页逻辑了。这里只要复制进来就可以了。不用改<script></script>
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);
        }
    }
});
//设置url中连接符(为什么要加这段呢?因为我们要带搜索条件时,一般的URL要带"?","&",这两个符号,这里就是为了,在追加页码时,当有了“?”符号时,会换成“&”,没有时则是“?”加page=页数,以下也是直接复制进去就可以了。)<b>function setParam(param,value){<br>     var query = location.search.substring(1);<br>     var p = new RegExp("(^|)" + param + "=([^&]*)(|$)");<br>     if(p.test(query)){<br>         //query = query.replace(p,"$1="+value);<br>         var firstParam=query.split(param)[0];<br>         var secondParam=query.split(param)[1];<br>         if(secondParam.indexOf("&")>-1){<br>             var lastPraam=secondParam.split("&")[1];<br>             return  '?'+firstParam+'&'+param+'='+value+'&'+lastPraam;<br>         }else{<br>             if(firstParam){<br>                 return '?'+firstParam+''+param+'='+value;<br>             }else{<br>                 return '?'+param+'='+value;<br>             }<br>         }<br>     }else{<br>         if(query == ''){<br>             return '?'+param+'='+value;<br>         }else{<br>             return '?'+query+'&'+param+'='+value;<br>         }<br>     }    <br> }<br> </b>//最后在你显示数据(例如后)最后添加下面这个<b><div></div></b>//上面的 id是自己的设置的,改的话,注意前面的cont: 'page11', 这里也要换。到此前端的准备已经完了。
搜索条件的也要附上URL地址的话,我是这么写的
//点击搜索<b>$("#sou").bind("click",function(event){<br>     event.preventDefault();</b>//这里不懂的可以自己查查(用于取消事件的默认行为 一般是有<from>时,没有就直接去掉)。<br>     <b>var type=$("#type").val();</b>//获取假设的搜索条件值<br>     <b>var url=$(this).attr("souid");</b>//这里的是获取点击是要跳转的地址(例如:souid="" 跳转地址自己换)<br> <b>    window.location.href=url+"?typeid="+type;<br> });</b></from>(小白就只能这么写了,见谅,基本的JQ,应该还是可以理解吧!)

二。现在是后端的部分<b>public function text(){</b><br> //下面是获取GET传来的页数,如果没有页数时,页数为1.<br> <b>$nowpage=I('page',1);</b><br> //$totalpage就是计算你要获取的最大页数,ceil 是向前取整,这里是设置为10条数据为1页(注意括号)。<br> <b>$totalpage=ceil((M('order')->where(条件)<br>                 ->count())/10);</b>//这里尽量简写了。<br> //下面注意加上 这句 limit(($nowpage-1)*10,10),就是数据控制每页显示数据的条数,获取页数后乘以设置的条数,获取该页的10条(自己设置)数据<br> <b>$res=M('order')->where(条件)<br>                 ->limit(($nowpage-1)*10,10)<br>                 ->select();</b><br> //最后,就是把数据和最大页数传到前端接受了完成了。(搜索条件的也要的话也要传。)<br> <b>    $this->assign("totalpage",$totalpage);<br>         $this->assign("res",$res);</b><br> <b>}</b>

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn