php分頁功能實現(分頁的實現)

本文目錄一覽:

php怎麼實現無刷新分頁效果

php+ajax實現無刷新分頁實現方法具體如下:

limit 偏移量,長度;

limit 0,7; 第一頁

limit 7,7; 第二頁

limit 14,7; 第三頁

每頁信息條數:7

信息總條數:select count(*) from table

信息總頁數:ceil向上取整(總條數/每頁條數)

1、分頁類具體使用

?php

class 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.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page=1\”)'{$this-config[“first”]}/a “;

//$html.=” a href='{$this-uri}page=1′{$this-config[“first”]}/a “;

return $html;

}

/*設置上一頁*/

private function prev() {

$html = “”;

if ($this-page == 1)

$html.=’ ‘.$this-config[“prev”].’ ‘;

else

$html.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page=” . ($this-page – 1) . “\”)'{$this-config[“prev”]}/a “;

//$html.=” a href='{$this-uri}page=”.($this-page-1).”‘{$this-config[“prev”]}/a “;

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.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page={$page}\”)'{$page}/a “;

}

$linkPage.=” {$this-page} “;

for ($i = 1; $i = $inum; $i++) {

$page = $this-page + $i;

if ($page = $this-pageNum)

$linkPage.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page={$page}\”)'{$page}/a “;

else

break;

}

return $linkPage;

}

/*設置下一頁*/

private function next() {

$html = “”;

if ($this-page == $this-pageNum)

$html.=’ ‘.$this-config[“next”].’ ‘;

else

$html.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page=” . ($this-page + 1) . “\”)'{$this-config[“next”]}/a “;

//$html.=” a href='{$this-uri}page=”.($this-page + 1).”‘{$this-config[“next”]}/a “;

return $html;

}

/*設置尾頁*/

private function last() {

$html = “”;

if ($this-page == $this-pageNum)

$html.=’ ‘.$this-config[“last”].’ ‘;

else

$html.=” a href=’javascript:void(0)’ onclick=’showPage(\”{$this-uri}page=” . ($this-pageNum) . “\”)'{$this-config[“last”]}/a “;

//$html.=” a href='{$this-uri}page=.(this-pageNum).'{$this-config[“last”]}/a “;

return $html;

}

/*設置頁面跳轉*/

private function goPage() {

return

‘ input type=”text” onkeydown=”javascript:if(event.keyCode==13){var page=(this.value’ . $this-pageNum . ‘)?’ . $this-pageNum . ‘:this.value;showPage(\” . $this-uri . ‘page=\’+page+\’\’)}” value=”‘ . $this-page . ‘” style=”width:25px”

input type=”button” value=”GO” onclick=”javascript:var page=(this.previousSibling.value’ . $this-pageNum . ‘)?’ . $this-pageNum . ‘:this.previousSibling.value;showPage(\” . $this-uri . ‘page=\’+page+\’\’)” ‘;

}

//頁面列表配置選項

function fpage($display = array(0, 1, 2, 3, 4, 5, 6, 7, 8)) {

$html[0] = ” 共有b{$this-total}/b{$this-config[“header”]} “;

$html[1] = ” 每頁顯示b” . ($this-end() – $this-start() + 1) . “/b條,本頁b{$this-start()}-{$this-end()}/b條 “;

$html[2] = ” b{$this-page}/{$this-pageNum}/b頁 “;

$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 = eof

style type=”text/css”

table {border:1px solid black; width:700px; margin:auto; border-collapse:collapse;}

td {border:1px solid black; }

/style

eof;

echo $css;

echo “

table

trtd序號/tdtd名稱/tdtd數量/tdtd價格/tdtd時間/td/tr

“;

//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 “tr”;

echo “td”.$i++.”/td”;

echo “td”.$rsta[‘goods_name’].”/td”;

echo “td”.$rsta[‘goods_number’].”/td”;

echo “td”.$rsta[‘goods_price’].”/td”;

echo “td”.date(“Y-m-d H:i:s”,$rsta[‘goods_create_time’]).”/td”;

echo “/tr”;

}

echo “trtd colspan=5″.$pagelist.”/td/tr”;

echo “/table”;

3 ajax無刷新分頁實現

open(‘get’,’http://網址/index.php?page=2′)

!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “”

html

head

title新建網頁/title

meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ /

meta name=”description” content=”” /

meta name=”keywords” content=”” /

script type=”text/javascript”

//獲得分頁信息ajax函數

function showPage(myurl){

var xhr = new XMLHttpRequest();

xhr.onreadystatechange = function(){

if(xhr.readyState==4){

var rst = document.getElementById(“result”);

rst.innerHTML = xhr.responseText;

}

}

xhr.open(“get”,myurl);

xhr.send(null);

}

window.onload = function(){

showPage(“./data1.php”); //獲得分頁信息

//showPage(“./data.php?page=2”);

}

/script

style type=”text/css”

/style

/head

body

h2ajax無刷新分頁效果/h2

div id=”result”/div

/body

/html

script type=”text/javascript”

document.write(new Date()+”br /”);

document.write(new Date()+”br /”);

document.write(new Date()+”br /”);

document.write(new Date()+”br /”);

/script

PHP中通過什麼字句實現分頁功能

寫法有很多種,比如:

html頁面中:

js:

$.get(“1.php”,{參數},function(data)

{

$(“#shi”).html(data);

});

即當點擊上一頁或下一頁時觸發一個函數,執行上面的代碼,把返回的內容放在

這裡

data就是php 文件返回的內容;那個sql語句應該是這樣寫的吧:

select * from table order by id desc limit ($page-1)*每頁個數,($page)*每頁個數

這裡用到了jquery.

其它還有一種思路,就是當第一次加載時,把所有的內容都從數據庫里讀出來了,然後在瀏覽器用js處理分頁,在php發送數據時最好用json格式,這樣更好處理

php怎麼實現分頁

/**

* 獲取分頁的HTML內容

* @param integer $page 當前頁

* @param integer $pages 總頁數

* @param string $url 跳轉url地址 最後的頁數以 ‘page=x’ 追加在url後面

*

* @return string HTML內容;

*/

public static function getPageHtml($page, $pages, $url){

//最多顯示多少個頁碼

$_pageNum = 5;

//當前頁面小於1 則為1

$page = $page1?1:$page;

//當前頁大於總頁數 則為總頁數

$page = $page $pages ? $pages : $page;

//頁數小當前頁 則為當前頁

$pages = $pages $page ? $page : $pages;

//計算開始頁

$_start = $page – floor($_pageNum/2);

$_start = $_start1 ? 1 : $_start;

//計算結束頁

$_end = $page + floor($_pageNum/2);

$_end = $_end$pages? $pages : $_end;

//當前顯示的頁碼個數不夠最大頁碼數,在進行左右調整

$_curPageNum = $_end-$_start+1;

//左調整

if($_curPageNum$_pageNum $_start1){

$_start = $_start – ($_pageNum-$_curPageNum);

$_start = $_start1 ? 1 : $_start;

$_curPageNum = $_end-$_start+1;

}

//右邊調整

if($_curPageNum$_pageNum $_end$pages){

$_end = $_end + ($_pageNum-$_curPageNum);

$_end = $_end$pages? $pages : $_end;

}

$_pageHtml = ‘ul class=”pagination”‘;

/*if($_start == 1){

$_pageHtml .= ‘lia title=”第一頁”«/a/li’;

}else{

$_pageHtml .= ‘lia title=”第一頁” href=”‘.$url.’page=1″«/a/li’;

}*/

if($page1){

$_pageHtml .= ‘lia title=”上一頁” href=”‘.$url.’page=’.($page-1).'”«/a/li’;

}

for ($i = $_start; $i = $_end; $i++) {

if($i == $page){

$_pageHtml .= ‘li class=”active”a’.$i.’/a/li’;

}else{

$_pageHtml .= ‘lia href=”‘.$url.’page=’.$i.'”‘.$i.’/a/li’;

}

}

/*if($_end == $pages){

$_pageHtml .= ‘lia title=”最後一頁”»/a/li’;

}else{

$_pageHtml .= ‘lia title=”最後一頁” href=”‘.$url.’page=’.$pages.'”»/a/li’;

}*/

if($page$_end){

$_pageHtml .= ‘lia title=”下一頁” href=”‘.$url.’page=’.($page+1).'”»/a/li’;

}

$_pageHtml .= ‘/ul’;

echo $_pageHtml;

}

PHP如何實現分頁顯示?

【文件名】: c_mysql_page.inc // 【作 用】: MySQL分頁函數類 // 【作 者】: 天灰 // // 【最後修改日期】: 2001/07/16[cxx] // 【變量定義規則】:‘C_’=字符型,‘I_’=整型,‘N_’=數字型,‘L_’=布爾型,‘A_’=數組型 //—————————————————————————————— //—————————————————————————————— // ※c_mysql_page() 構造函數,設置分頁初始參數 // ※page_standard() 分頁顯示函數(標準型) // ※GetRecordStartEnd() 獲得取記錄的開始結束位置 // ※getmaxpage() 獲得記錄集的最大頁數 // ※checkpage() 檢查當前頁數是否在0和最大頁數之間 //—————————————————————————————— class c_mysql_page { //—————————————————————————————— // 變量定義 //—————————————————————————————— var $I_pagesize = 10; //每頁記錄數 var $C_width = ‘80%’; //表格寬度 //—————————————————————————————— //—————————————————————————————— // 函數名:c_mysql_page ($I_pagesize, $c_width) // 作 用:構造函數,設置分頁初始參數 // 參 數:$I_pagesize, $c_width // 返回值:變量 // 備 註:構造函數隨着類的建立而自動執行 //—————————————————————————————— function c_mysql_page ($I_pagesize=10, $C_width=’80%’) { if (isset($I_pagesize)){$this – I_pagesize = $I_pagesize;} if (isset($C_width)){$this – C_width = $C_width;} } //—————————————————————————————— // 函數名:page_standard($I_sumrecord,$C_page,$C_url=”self”,$C_otherpara=””) // 作 用:分頁顯示函數(標準型) // 參 數:$I_sumrecord 記錄總數 // $C_url URL // $C_page URL後的參數 // $C_otherpara URL後的參數2 // $bgcolor 表格的背景顏色 // 返回值: // 備 註:無 //—————————————————————————————— function page_standard($I_sumrecord,$C_page,$C_url=”self”,$C_otherpara=””,$bgcolor=””) { //檢查參數 if ((!$I_sumrecord) || (!$C_page)){AlertExit(“參數不全!”);} global $PHP_SELF,$$C_page; //全局變量$C_page //檢測$I_pagesize是否合法 if($this – I_pagesize 1){AlertExit(“請設定每頁的記錄數!”);} if($I_sumrecord 1){return false;} //檢測總記錄數 if($C_url == “self”){$C_url = $PHP_SELF;} //設置URL $I_page = $$C_page; //重新賦當前頁值 $I_maxpage = $this – getmaxpage($I_sumrecord); //取出總頁數 $I_page = $this – checkPage($I_maxpage,$I_page); //檢查當前頁號 //顯示錶 echo “”; echo “”; echo “共” . $I_sumrecord. “條主題nbsp當前第” . $I_page . “/”. $I_maxpage. “頁”; if ($I_maxpage 1) { echo “”; if($I_page 1 $I_page $I_maxpage) { echo “首頁”; $pre=$I_page-1; echo “上頁”; $next=$I_page+1; echo “下頁”; echo “末頁”; } elseif($I_page == 1) { $next = $I_page+1; echo “下頁”; echo “末頁”; } elseif($I_page == $I_maxpage) { echo “首頁”; $pre=$I_page-1; echo “上頁”; } //顯示select echo “轉到”; echo “”;//OnChange=”.WindowLocation($C_url,$C_otherpara,$C_page).” for($i=1;$i I_pagesize; $I_pagesize = $this – I_pagesize; } //—————————————————————————————— //—————————————————————————————— // 函數名:getmaxpage($intRecordNum) // 作 用:獲得記錄集的最大頁數 // 參 數:$I_sumrecord 記錄總數 // 返回值:最大頁數$I_maxpage(整型) // 備 註:無 //—————————————————————————————— function getmaxpage($I_sumrecord) { if (!$I_sumrecord){AlertExit(“參數不全!

php 長文章怎麼在顯示時實現分頁

有種偷懶的做法。就是文章太長。就是顯示一段,隱藏另外段落。

文章在後台發布肯定是通過WEB編輯器進行的,對吧!你可以在編輯器上增加文章分頁顯示功能。具體的原理是這樣的,你在想要分頁的地方插入你自己定義的標記符號比如#page#,插入到數據庫中的HTML代碼中就會有這樣的#page#的代碼。在前台看的時候,通過程序處理。把文字HTML中有#page#這樣的東西。進行下翻譯成文章分頁即可!有幾個#page#就可以判斷在當初在後台設置過分幾頁顯示。生成一段JS代碼、控制DIV的顯示隱藏就可以實現分頁效果。

原創文章,作者:AIIYN,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/318034.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
AIIYN的頭像AIIYN
上一篇 2025-01-11 16:28
下一篇 2025-01-11 16:28

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • jQuery Datatable分頁中文

    jQuery Datatable是一個非常流行的數據表插件,它可以幫助您快速地在頁面上創建搜索、過濾、排序和分頁的數據表格。不過,它的默認設置是英文的,今天我們就來探討如何將jQu…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java和Python哪個功能更好

    對於Java和Python這兩種編程語言,究竟哪一種更好?這個問題並沒有一個簡單的答案。下面我將從多個方面來對Java和Python進行比較,幫助讀者了解它們的優勢和劣勢,以便選擇…

    編程 2025-04-29
  • Python每次運行變量加一:實現計數器功能

    Python編程語言中,每次執行程序都需要定義變量,而在實際開發中常常需要對變量進行計數或者累加操作,這時就需要了解如何在Python中實現計數器功能。本文將從以下幾個方面詳細講解…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python strip()函數的功能和用法用法介紹

    Python的strip()函數用於刪除字符串開頭和結尾的空格,包括\n、\t等字符。本篇文章將從用法、功能以及與其他函數的比較等多個方面對strip()函數進行詳細講解。 一、基…

    編程 2025-04-28
  • 全能的wpitl實現各種功能的代碼示例

    wpitl是一款強大、靈活、易於使用的編程工具,可以實現各種功能。下面將從多個方面對wpitl進行詳細的闡述,每個方面都會列舉2~3個代碼示例。 一、文件操作 1、讀取文件 fil…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27

發表回復

登錄後才能評論