Image

CI实现简单的分页原理

首页 / 新闻资讯 / 正文

/* /*      * $allPage 页面显示的总页数      * $allDatas 总条目      * $page 当前页      * $epage 每页条数      * $url 分页链接      */     public function getPage($data=array())     {         $str = '<div style="padding:20px;1px; font-size:20px;">';         //上一页、下一页链接         $prev = $data['urls'].($data['page']-1);         $next = $data['urls'].($data['page']+1);          //开始页数、结束页数         $start = (int)($data['page'] - floor($data['allPage']/2));         $start = $start<1 ? 1 : $start;         if($start<=0)          {             $start = 1;             $data['page'] = 1;         }         $end   = (int)($data['page'] + floor($data['allPage']/2));         if($end-$start<$data['allPage']) {             $end = $start+$data['allPage']-1;         }         if(($data['allPage']-$end)<floor($data['allPage']/2)) {             $start = $end-$data['allPage'];         }         $allDataPage = (int)(ceil($data['total']/$data['epage']));         //$end   = $end>$allDataPage ? $allDataPage : $end;         if($end>$allDataPage)          {             $end = $allDataPage;             $data['page'] = $allDataPage;         }          $str .= '<a style="padding:10px; color:red; text-decoration:none" href="'.$prev.'"><span>上一页</span></a>';         $startSlice = ($data['page']-1)*$data['epage'];         $pageDatas = array_slice($data['allDatas'],$startSlice, $data['epage']);         for ($i=$start; $i <=$end ; $i++) {              //循环链接             $pageLink = $data['urls'].$i;             $str .= '<a style="padding:10px 5px; color:red; text-decoration:none" href="'.$pageLink.'">'.$i.'</a>';         }         $str .= '<a style="padding:10px; color:red; text-decoration:none" href="'.$next.'"><span>下一页</span></a>';         $result['pageDatas'] = $pageDatas;          $result['htmlData'] = $str;         return $result;     } 

运行示例:
CI实现简单的分页原理
主要思想:这个方法的主要作用是生成了简单的分页链接。如上图的底部中的 上一页+页码+下一页 的实现。与页面上的列表信息数据没有关系。渲染页面的时候,要把页面中所有的数据查询出来全部传入以上的方法中,渲染页面就用分页方法中返回的数据。前端代码如下:

<?php  defined('BASEPATH') or exit("No direct script access allowed"); ?> <html lang="en"> <head>     <meta charset="utf-8">     <title>数据分页</title> </head> <body>     <form action="/index.php/Pages/add">         <button type="submit">增加数据</button>         <table border="1px;" cellspacing="0" border-color="red">             <thead>分类列表</thead>             <tr>                 <td>ID</td>                 <td>name</td>                 <td>gb_class_id</td>             </tr>             <?php foreach ($allDatas as $key=>$value){ ?>             <tr>                 <td><?php echo $value->id; ?></td>                 <td><?php echo $value->name; ?></td>                 <td><?php echo $value->gb_class_id; ?></td>             </tr>             <?php } ?>         </table>         <?php echo $htmlData; ?>     </form> </body> <style> .npl a{margin-right: 15px;float:left; padding: 8px 15px; border:1px solid #e5e5e5; margin-bottom: 10px} </style> </html> 

Loading...