zoukankan      html  css  js  c++  java
  • thinkphp分页实现

    以上为我对于thinkphp分页的实现效果,两种方法,一种调用公共函数中的函数方法(参考http://www.cnblogs.com/tianguook/p/4326613.html),一种是在模型中书写分页的方法

    1、在公共函数Application/Common/Common/function.php中书写:

    function getpage($count,$pagesize=10) {
        $page=new ThinkPage($count,$pagesize);
        $page->setConfig('header', '<li>共<b>%TOTAL_ROW%</b>条记录&nbsp;<b>%NOW_PAGE%</b>/<b>%TOTAL_PAGE%</b>页</li>');
        $page->setConfig('prev', '上一页');
        $page->setConfig('next', '下一页');
        $page->setConfig('last', '末页');
        $page->setConfig('first', '首页');
        $page->setConfig('theme', '%FIRST%%UP_PAGE%%LINK_PAGE%%DOWN_PAGE%%END%%HEADER%');
        $page->lastSuffix=false;//最后一页不显示总页数
        return $page;
    }

    在控制器PageController.class.php中调用

    namespace HomeController;
    use ThinkController;
    class PageController extends Controller {
        public function index() {
            $m=M('user');
            $count=$m->count();
         $limit=8;
    $page= getpage($count,$limit);//Common/function.php中分页 $list=$m->limit($page->firstRow,$page->listRows)->select();
         /**或$page1=I('p',0,'int');
            $list=$m->limit($page1,$limit)->select();*/
    $this->assign('list',$list);//赋值数据集 $this->assign('page',$page->show());//赋值分页输出 $this->display(); } }

    在视图index/index.html中显示

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
             <link href="__CSS__/page.css" rel="stylesheet" />
        </head>
        <body>
            <div>
                <volist name="list" id="vo">
                    <notemply name="$vo['name']">
                       用户名:<p>{$vo['name']}</p>
                    </notemply>
                </volist>
                <div>
                    <table>
                        <tr>
                            <td colspan="3" bgcolor="#FFFFFF">
                                <div class="pages">{$page}   </div>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </body>
    </html>

    样式的书写page.css

    .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:#58A0D3;
    }
    .pages a.first,.pages a.prev,.pages a.next,.pages a.end{
        margin:0;
    }
    .pages a:hover{
        border-color:#50A8E6;
    }
    .pages span.current{
        background:#50A8E6;
        color:#FFF;
        font-weight:700;
        border-color:#50A8E6;
    }

    2、在模板UserModel.class.php中书写分页函数

    namespace HomeModel;
    use ThinkModel;
    class UserModel extends Model {
        public function getPage() {
              $page=I('p',0,'int');
                $limit=8;
                $data=$this->page($page,$limit)->select();
                $count=  $this->count();
                $Page=new ThinkPage($count, $limit);
                
                $Page->lastSuffix=false;//是否显示总页数
                $Page->setConfig('header','<li>共<b>%TOTAL_ROW%</b>幅图片&nbsp;&nbsp;每页<b>'.$limit.'</b>幅&nbsp;&nbsp;<b>%NOW_PAGE%</b>/<b>%TOTAL_PAGE%</b>页</li>');
                $Page->setConfig('prev','上一页');
                $Page->setConfig('next','下一页');
                $Page->setConfig('last','末页');
                $Page->setConfig('first','首页');
                $Page->setConfig('theme','%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END% %HEADER%');
                $show=$Page->show();
                return array('list'=>$data,'page'=>$show);
        }
    }

    控制器PageController.class.php中调用

    namespace HomeController;
    use ThinkController;
    class PageController extends Controller {
        public function index() {
            $m=D('Upload_img');
            $list=$m->getPage();//model中分页
            $this->assign('list',$list);//赋值数据集
            $this->display();
        }
    }

    视图显示index/index.html

    <!DOCTYPE html>
    <html>
        <head>
            <title></title>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
             <link href="__CSS__/page.css" rel="stylesheet" />
        </head>
        <body>
            <div>
                <volist name="list.list" id="vo">
                    <notemply name="$vo['name']">
                       用户名:<p>{$vo['name']}
                    </notemply>
                </volist>
                <div>
                    <table>
                        <tr>
                            <td colspan="3" bgcolor="#FFFFFF">
                                <div class="pages">{$list.page}   </div>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </body>
    </html>

    分页的样式与第1中公共方法中page.css中样式相同

    以上<link href="__CSS__/page.css" rel="stylesheet" />引用文件常量"__CSS__"在公共配置文件中配置:

    return array(
      'TMPL_PARSE_STRING'=>array( '__CSS__'=>__ROOT__.'/Public/Css', )
    )
  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/zhuyefengying/p/5714609.html
Copyright © 2011-2022 走看看