php+ajax實現無重新整理分頁,phpajax重新整理分頁
本文執行個體講述了php+ajax實現無重新整理分頁實現方法。分享給大家供大家參考。具體如下:
limit 位移量,長度;
limit 0,7; 第一頁
limit 7,7; 第二頁
limit 14,7; 第三頁
每頁資訊條數:7
資訊總條數:select count(*) from table
資訊總頁數:ceil向上取整(總條數/每頁條數)
1、分頁類具體使用
<?phpclass Pagination { private $total; //資料表中總記錄數 private $listRows; //每頁顯示行數 private $limit; //mysql 資料庫的limit private $uri; //分頁資訊前面的uri地址 private $pageNum; //頁數 private $config = array('header' => "個記錄", "prev" => "【上一頁】", "next" => "【下一頁】", "first" => "【首 頁】", "last" => "【尾 頁】"); private $listNum = 8; /* * $total 當前資訊總條數 * $listRows 每頁顯示的條數 * $pa 下面的page http://網址/index.php?page=5 */ public function __construct($total, $listRows = 10, $pa = "") { $this->total = $total; $this->listRows = $listRows; $this->uri = $this->getUri($pa); $this->page = !empty($_GET["page"]) ? $_GET["page"] : 1;//不傳入page,則預設顯示首頁 $this->pageNum = ceil($this->total / $this->listRows); $this->limit = $this->setLimit(); } //設定每頁顯示的條數 private function setLimit() { return "Limit " . ($this->page - 1) * $this->listRows . ", {$this->listRows}"; } //獲得URL地址 private function getUri($pa) { $url = $_SERVER["REQUEST_URI"] . (strpos($_SERVER["REQUEST_URI"], '?') ? '' : "?") . $pa; $parse = parse_url($url); if (isset($parse["query"])) { parse_str($parse['query'], $params); unset($params["page"]); $url = $parse['path'] . '?' . http_build_query($params); } return $url; } //魔術方法, public function __get($args) { if ($args == "limit") return $this->limit; else return null; } //頁面開始的條數 private function start() { if ($this->total == 0) return 0; else return ($this->page - 1) * $this->listRows + 1; } //頁面結束的條數 private function end() { return min($this->page * $this->listRows, $this->total); } /*設定首頁*/ private function first() { $html = ""; if ($this->page == 1) $html.=' '.$this->config["first"].' '; else $html.=" uri}&page=1\")'>{$this->config["first"]} "; //$html.=" uri}&page=1'>{$this->config["first"]} "; return $html; } /*設定上一頁*/ private function prev() { $html = ""; if ($this->page == 1) $html.=' '.$this->config["prev"].' '; else $html.=" uri}&page=" . ($this->page - 1) . "\")'>{$this->config["prev"]} "; //$html.=" uri}&page=".($this->page-1)."'>{$this->config["prev"]} "; return $html; } //頁碼列表【首頁】【2】【3】…………【尾頁】 private function pageList() { $linkPage = ""; $inum = floor($this->listNum / 2); for ($i = $inum; $i >= 1; $i--) { $page = $this->page - $i; if ($page < 1) continue; $linkPage.=" uri}&page={$page}\")'>{$page} "; } $linkPage.=" {$this->page} "; for ($i = 1; $i <= $inum; $i++) { $page = $this->page + $i; if ($page <= $this->pageNum) $linkPage.=" uri}&page={$page}\")'>{$page} "; else break; } return $linkPage; } /*設定下一頁*/ private function next() { $html = ""; if ($this->page == $this->pageNum) $html.=' '.$this->config["next"].' '; else $html.=" uri}&page=" . ($this->page + 1) . "\")'>{$this->config["next"]} "; //$html.=" uri}&page=".($this->page + 1)."'>{$this->config["next"]} "; return $html; } /*設定尾頁*/ private function last() { $html = ""; if ($this->page == $this->pageNum) $html.=' '.$this->config["last"].' '; else $html.=" uri}&page=" . ($this->pageNum) . "\")'>{$this->config["last"]} "; //$html.=" uri}&page=.(this->pageNum).'>{$this->config["last"]} "; return $html; } /*設定頁面跳轉*/ private function goPage() { return ' '; } //頁面列表配置選項 function fpage($display = array(0, 1, 2, 3, 4, 5, 6, 7, 8)) { $html[0] = " 共有{$this->total}{$this->config["header"]} "; $html[1] = " 每頁顯示" . ($this->end() - $this->start() + 1) . "條,本頁{$this->start()}-{$this->end()}條 "; $html[2] = " {$this->page}/{$this->pageNum}頁 "; $html[3] = $this->first(); $html[4] = $this->prev(); $html[5] = $this->pageList(); $html[6] = $this->next(); $html[7] = $this->last(); $html[8] = $this->goPage(); $fpage = ''; foreach ($display as $index) { $fpage.=$html[$index]; } return $fpage; }}
2 資料顯示
<?php//連結資料庫//獲得具體資訊//分頁顯示header("content-type:text/html;charset=utf-8");$link = mysql_connect('localhost','root','111111');mysql_select_db('shop', $link);mysql_query("set names utf8");$css = << table {border:1px solid black; width:700px; margin:auto; border-collapse:collapse;} td {border:1px solid black; }eof;echo $css;echo "
| 序號 |
名稱 |
數量 |
價格 |
時間 |
";//1 引入分頁類include "./Pagination.php";//2. 獲得資訊總條數$sql = "select * from sw_goods";$qry = mysql_query($sql);$total = mysql_num_rows($qry);$per = 7;//3. 執行個體化分頁類對象$page_obj = new Pagination($total,$per);//4. 拼裝sql語句,獲得每頁資訊//利用page_obj實現limit的靈活設定//$page_obj -> limit;$sqla = "select * from sw_goods ".$page_obj->limit;$qrya = mysql_query($sqla);//5. 獲得頁面列表$pagelist = $page_obj -> fpage(array(3,4,5,6,7,8));$i=1;while($rsta = mysql_fetch_assoc($qrya)){ echo "
"; echo "
| ".$i++." | "; echo "
".$rsta['goods_name']." | "; echo "
".$rsta['goods_number']." | "; echo "
".$rsta['goods_price']." | "; echo "
".date("Y-m-d H:i:s",$rsta['goods_create_time'])." | "; echo "
";}echo "
| ".$pagelist." |
";echo "
";
3 ajax無重新整理分頁實現
open(‘get','http://網址/index.php?page=2')
建立網頁 ajax無重新整理分頁效果
希望本文所述對大家的PHP程式設計有所協助。
http://www.bkjia.com/PHPjc/1073128.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1073128.htmlTechArticlephp+ajax實現無重新整理分頁,phpajax重新整理分頁 本文執行個體講述了php+ajax實現無重新整理分頁實現方法。分享給大家供大家參考。具體如下: limit 位移量,...