Home  >  Article  >  Backend Development  >  Sample code sharing for paging in ThinkPhp3.2

Sample code sharing for paging in ThinkPhp3.2

黄舟
黄舟Original
2017-07-27 15:06:431169browse

The manual for writing pagination with TP3.2 is very difficult to understand. I went to the Internet to find information myself. I will sort it out now and may use it in the future;

There is the Page.class.php class under Think;

I put a function.php file (it’s a class, but not...) below ;

Purpose: to facilitate calling from other places;

Look at the source code: This is the code in function.php:

<?php
/**
 * TODO 基础分页的相同代码封装,使前台的代码更少
 * @param $count 要分页的总记录数
 * @param int $pagesize 每页查询条数
 * @return \Think\Page
 */
function getpage($count, $pagesize = 10) {
    $p = new Think\Page($count, $pagesize);
    $p->setConfig(&#39;header&#39;, &#39;<li class="rows">共<b>%TOTAL_ROW%</b>条记录 第<b>%NOW_PAGE%</b>页/共<b>%TOTAL_PAGE%</b>页</li>&#39;);
    $p->setConfig(&#39;prev&#39;, &#39;上一页&#39;);
    $p->setConfig(&#39;next&#39;, &#39;下一页&#39;);
    $p->setConfig(&#39;last&#39;, &#39;末页&#39;);
    $p->setConfig(&#39;first&#39;, &#39;首页&#39;);
    $p->setConfig(&#39;theme&#39;, &#39;%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%&#39;);
    $p->lastSuffix = false;//最后一页不显示为总页数
    return $p;
}
?>

How to use it in control? :

public function fy() {
        $m = M(&#39;article&#39;);
        $where = "a_id>10";
        $count = $m->where($where)->count();
        $p = getpage($count,10);//每页显示几条
        $list = $m->field(true)->where($where)->order(&#39;a_id&#39;)->limit($p->firstRow, $p->listRows)->select();
        $this->assign(&#39;select&#39;, $list); // 赋值数据集
        $this->assign(&#39;page&#39;, $p->show()); // 赋值分页输出
        $this->display(&#39;Ws:public/fy&#39;);
    }

Let’s look at the front-end page:

 <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>信息输出</title>

    </head><style>
    .pages a,.pages span {
    display:inline-block;
    padding:2px 5px;
    margin:0 1px;
    border:1px solid #f0f0f0;
    -webkit-border-radius:3px;
    -moz-border-radius:3px;
    border-radius:3px;}.pages a,.pages li {
    display:inline-block;
    list-style: none;
    text-decoration:none; color: black;}.pages a.first,.pages a.prev,.pages a.next,.pages a.end{
    margin:0;}.pages a:hover{
    border-color:crimson;}.pages span.current{
    background:#50A8E6;
   color: black;
    font-weight:700;
    border-color:#50A8E6;}
    </style>
    <body>
        <table width="405" border="1" cellpadding="1" cellspacing="1" bgcolor="#99CC33" bordercolor="#FFFFFF">
           
          
            <tr class="title">
                <td bgcolor="#FFFFFF" width="44">编号</td>
                <td bgcolor="#FFFFFF" width="120">标题</td>
                <td bgcolor="#FFFFFF" width="223">描述</td>
            </tr>
            <foreach name=&#39;select&#39; item=&#39;user&#39; >
                <tr class="content">
                    <td bgcolor="#FFFFFF"> {$user.a_id}</td>
                    <td bgcolor="#FFFFFF"> {$user.a_title}</td>
                    <td bgcolor="#FFFFFF"> {$user.a_remark}</td>
                </tr>
            </foreach>
            <tr class="content">
                <!--<td colspan="3" bgcolor="#FFFFFF"> {$page}</td>-->
                <td colspan="3" bgcolor="#FFFFFF"><p class="pages">
                        {$page}                </p></td>  
            </tr>
        </table>
    </body>

The above is the detailed content of Sample code sharing for paging in ThinkPhp3.2. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn