>  기사  >  php教程  >  레이페이지 페이징 사용에 대한 Xiaobai의 간략한 소개

레이페이지 페이징 사용에 대한 Xiaobai의 간략한 소개

WBOY
WBOY원래의
2016-08-04 08:56:241247검색

저는 초보자라서 내장된 페이징을 사용했는데 나중에 마스터가 이걸 추천해줬는데 느낌이 좋아서 추천한게 일반적으로 페이징은 GET을 사용해서 값을 전달하고 싶을 때 하게 됩니다. 검색, URL에 검색 값을 추가해야 합니다. 그렇지 않으면 다음 페이지를 클릭하고 검색 조건이 지워집니다. 이것은 첫 번째 게시물입니다. (개선을 위한 몇 가지 제안을 해주시면 감사하겠습니다.) 주로 초보로서 어려움을 겪고 있는 분들을 위해 시청해 주세요(서로 격려해주세요).
//这里是前端页面需要引入的文件,去 http://laypage.layui.com/ 官网下载放在项目下即可(我将文件放在了Public下,然后再调用出来),<script src="/Public/laypage/laypage.js"></script>//好像很实用的样子,后端的同学再也不用写分页逻辑了。这里只要复制进来就可以了。不用改<b><script></b><br> <b>laypage({<br>     cont: 'page11',<br>     pages: 18,</b> //假设我们获取到的是18(后端计算完总页数后将总页数值传过来,放在这里即可(类似{$totalpage})).<br>  <b>curr: function(){ </b>//通过url获取当前页,也可以同上(pages)方式获取<br> <b> var page = location.search.match(/page=(\d+)/);<br>         return page ? page[1] : 1;//如果没有页数显示时,默认是第一页<br>     }(), </b><br>    <b> jump: function(e, first){ </b>//触发分页后的回调<br>        <b> if(!first){</b> //一定要加此判断,否则初始时会无限刷新<br> <b>            location.href=setParam("page",e.curr);<br>         }<br>     }<br> });</b>//设置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> </script></b>//最后在你显示数据(例如后)最后添加下面这个<b><div style="margin-top:15px; text-align:center;" id="page11"></div></b>//위 ID는 직접 설정한 것입니다. 변경할 경우 이전 내용인 'page11'에 주의하세요. 여기서도 변경해야 합니다. 이제 프론트 엔드 준비가 완료되었습니다.
검색어에 URL 주소도 포함되어야 한다면 이렇게 작성했습니다
//검색하려면 클릭<b>$("#sou").bind("click",function(event){<code class="prettyprint linenums lang-php"><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="<*:U(&#039;Custom/customorder&#039;)*>" 跳转地址自己换)<br> <b>    window.location.href=url "?typeid=" type;<br> });</b> Event.preventDefault();
//여기서 이해가 되지 않으면 직접 확인할 수 있습니다(이벤트 취소에 대한 기본 동작은 일반적으로 이 있는 경우이며, 그렇지 않은 경우 직접 제거하면 됩니다).
var type=$("#type").val();<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>//가상 검색 조건 값 가져오기

var url=$(this).attr("souid"); window.location.href=url "?typeid=" 유형;

});

(초보자는 이렇게만 쓸 수 있습니다. 죄송합니다. 기본 JQ는 아직 이해할 수 있을 것입니다!) 둘. 이제 백엔드 부분이 나옵니다.<b>공개 함수 text(){ //다음은 GET으로 보낸 페이지 번호를 가져오는 내용입니다. 페이지 번호가 없으면 페이지 번호는 1입니다. <b>$nowpage=I('페이지',1); //$totalpage는 얻으려는 최대 페이지 수를 계산하는 것입니다. ceil은 반올림됩니다. 여기서는 10개의 데이터를 1페이지로 설정합니다(괄호 참고). <b>$totalpage=ceil((M('주문')->where(조건) ->count())/10);//최대한 축약합니다. //아래에 문장 제한(($nowpage-1)*10,10)을 추가합니다. 이는 데이터가 각 페이지에 표시되는 데이터 수를 제어한다는 의미입니다. 페이지 수를 구한 후 설정된 페이지 수를 곱합니다. 페이지에서 10개의 항목을 가져옵니다. (직접 설정) 데이터 <b>$res=M('주문')->where(조건) ->limit(($nowpage-1)*10,10) ->select(); //마지막으로 데이터와 최대 페이지 수가 프런트엔드로 전달되어 승인됩니다. (필요한 경우 검색조건도 함께 보내주셔야 합니다.) <b> $this->할당("totalpage",$totalpage);          $this->할당("res",$res); <b>} </b></b></b></b></b></b>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.