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', )
    )
  • 相关阅读:
    解决 iOS View Controller Push/Pop 时的黑影
    AFN发送请求失败
    cocoapods安装失败
    cocoapods 更新失败 bad response Not Found 404 (http://ruby.taobao.org/specs.4.8.gz)
    iOS开发: 向右滑动手势功能实现
    虚拟器运行iOS8地图提示错误
    unexpected nil window in _UIApplicationHandleEventFromQueueEvent...
    控制控制器只支持横/竖屏
    UIWebView执行JS语句
    Warning: Attempt to present * on * which is already presenting *
  • 原文地址:https://www.cnblogs.com/zhuyefengying/p/5714609.html
Copyright © 2011-2022 走看看