<?php class Page { // 分页栏每页显示的页数 public $rollPage = 10; // 页数跳转时要带的参数 public $parameter; // 默认列表每页显示行数 public $listRows = 20; // 起始行数 public $firstRow; // 分页总页面数 protected $totalPages; // 总行数 protected $totalRows; // 当前页数 protected $nowPage; // 分页的栏的总页数 protected $coolPages; // 分页显示定制 protected $config = array(‘header‘ => ‘条记录‘, ‘prev‘ => ‘上一页‘, ‘next‘ => ‘下一页‘, ‘first‘ => ‘首页‘, ‘last‘ => ‘尾页‘, ‘theme‘ => ‘ %totalRow% %header% %nowPage%/%totalPage% 页 %upPage% %first% %prePage% %linkPage% %downPage% %nextPage% %end% %ajax%‘); // 默认分页变量名 protected $varPage; //分页外层div的id protected $pagesId; //分页内容替换目标ID protected $target; /** +---------------------------------------------------------- * 架构函数 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param array $totalRows 总的记录数 * @param array $listRows 每页显示记录数 * @param array $parameter 分页跳转的参数 +---------------------------------------------------------- */ public function __construct($totalRows, $listRows = ‘‘, $parameter = ‘‘,$target=‘‘,$pagesId=‘‘) { $this->totalRows = $totalRows; $this->parameter = $parameter; $this->target = $target; $this->pagesId = $pagesId; $this->varPage = C(‘VAR_PAGE‘) ? C(‘VAR_PAGE‘) : ‘p‘; if (!empty($listRows)) { $this->listRows = intval($listRows); } $this->totalPages = ceil($this->totalRows / $this->listRows); //总页数 $this->coolPages = ceil($this->totalPages / $this->rollPage); $this->nowPage = !empty($_GET[$this->varPage]) ? intval($_GET[$this->varPage]) : 1; if (!empty($this->totalPages) && $this->nowPage > $this->totalPages) { $this->nowPage = $this->totalPages; } $this->firstRow = $this->listRows * ($this->nowPage - 1); } public function setConfig($name, $value) { if (isset($this->config[$name])) { $this->config[$name] = $value; } } /** +---------------------------------------------------------- * 分页显示输出 +---------------------------------------------------------- * @access public +---------------------------------------------------------- */ public function show() { if (0 == $this->totalRows) return ‘‘; $p = $this->varPage; $nowCoolPage = ceil($this->nowPage / $this->rollPage); $url = $_SERVER[‘REQUEST_URI‘] . (strpos($_SERVER[‘REQUEST_URI‘], ‘?‘) ? ‘‘ : "?") . $this->parameter; $parse = parse_url($url); if (isset($parse[‘query‘])) { parse_str($parse[‘query‘], $params); unset($params[$p]); $url = $parse[‘path‘] . ‘?‘ . http_build_query($params); } //上下翻页字符串 $upRow = $this->nowPage - 1; $downRow = $this->nowPage + 1; if ($upRow > 0) { $upPage = "<a href=‘" . $url . "&" . $p . "=$upRow‘>" . $this->config[‘prev‘] . "</a>"; } else { $upPage = ""; } if ($downRow <= $this->totalPages) { $downPage = "<a href=‘" . $url . "&" . $p . "=$downRow‘>" . $this->config[‘next‘] . "</a>"; } else { $downPage = ""; } // << < > >> if ($nowCoolPage == 1) { $theFirst = ""; $prePage = ""; } else { $preRow = $this->nowPage - $this->rollPage; $prePage = "<a href=‘" . $url . "&" . $p . "=$preRow‘ >上" . $this->rollPage . "页</a>"; $theFirst = "<a href=‘" . $url . "&" . $p . "=1‘ >" . $this->config[‘first‘] . "</a>"; } if ($nowCoolPage == $this->coolPages) { $nextPage = ""; $theEnd = ""; } else { $nextRow = $this->nowPage + $this->rollPage; $theEndRow = $this->totalPages; $nextPage = "<a href=‘" . $url . "&" . $p . "=$nextRow‘ >下" . $this->rollPage . "页</a>"; $theEnd = "<a href=‘" . $url . "&" . $p . "=$theEndRow‘ >" . $this->config[‘last‘] . "</a>"; } // 1 2 3 4 5 $linkPage = ""; for ($i = 1; $i <= $this->rollPage; $i++) { $page = ($nowCoolPage - 1) * $this->rollPage + $i; if ($page != $this->nowPage) { if ($page <= $this->totalPages) { $linkPage .= " <a href=‘" . $url . "&" . $p . "=$page‘> " . $page . " </a>"; } else { break; } } else { if ($this->totalPages != 1) { $linkPage .= " <span class=‘current‘>" . $page . "</span>"; } } } //<script>jquery分页</script> $ajax = ‘‘; if($this->target){ $ajax = <<<eco <script> jQuery(function($) { $(‘#{$this->pagesId} a‘).click(function(){ $.ajax({ url: $(this).attr(‘href‘), dataType: "html", type: "POST", cache: false, success: function(html){ $("#{$this->target}").html(html); } }); return false; }); }); </script> eco; } $pageStr = str_replace( array( ‘%header%‘, ‘%nowPage%‘, ‘%totalRow%‘, ‘%totalPage%‘, ‘%upPage%‘, ‘%downPage%‘, ‘%first%‘, ‘%prePage%‘, ‘%linkPage%‘, ‘%nextPage%‘, ‘%end%‘, ‘%ajax%‘ ), array( $this->config[‘header‘], $this->nowPage, $this->totalRows, $this->totalPages, $upPage, $downPage, $theFirst, $prePage, $linkPage, $nextPage, $theEnd, $ajax ), $this->config[‘theme‘] ); return $pageStr; } }
调用方法:在tp中:
public function ajaxPage(){ $tz=M(‘MoneyLog‘); import(‘ORG.Util.ajaxpage‘); $count = $tz->count(); $page = new Page($count,10,‘type=1‘,‘ajax_div‘,‘ajax_page_div‘); $data = $tz->limit($page->firstRow, $page->listRows)->select(); $pagestr = $page->show(); $this->assign(‘list‘,$data); $this->assign(‘show‘,$pagestr); if(IS_AJAX){ exit($this->fetch(‘list‘)); } $this->display(‘list‘); }
静态页面:
<script type="text/javascript" src="/Public/shouye/js/jquery-1.7.1.min.js"></script> <div id="ajax_div"> <table> <tr> <td>性别</td><td>年龄</td><td>单位</td> </tr> <?php foreach($list as $v){ ?> <tr> <td><?php echo $v[‘total_money‘]; ?></td> <td><?php echo $v[‘time‘]; ?></td> <td><?php echo $v[‘ip‘]; ?></td> </tr> <?php } ?> </table> <div><div id="ajax_page_div">{$show}</div></div> </div> <script> jQuery(function($) { $(‘#ajax_page_div a‘).click(function(){ $.ajax({ url: $(this).attr(‘href‘), dataType: "html", type: "POST", data:‘zhangsan=‘+‘lisi‘, cache: false, success: function(html){ $("#ajax_div").html(html); } }); return false; }); }); </script>
时间: 2024-10-18 22:09:24