首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 分頁類完整實現:四種顯示模式、AJAX 支援、自定義樣式、繼承擴展

     編輯:PHP 綜合知識

類特性

  • 四種分頁模式(數字條、首尾頁、下拉選擇、簡潔模式等)。
  • 支援 AJAX 無刷新分頁(指定回調函數名)。
  • 可自定義連結文本、CSS 樣式、URL 參數名。
  • 同時相容 PHP 4/5(老代碼風格,現代項目建議用 PHP 7+ 類語法重寫)。
  • 提供 offset() 直接用於 SQL LIMIT。

核心代碼結構

<?php
class Page {
    // 公共屬性:文本、樣式、AJAX 開關
    public $page_name = 'PB_page';
    public $next_page = '>';
    public $pre_page  = '<';
    public $first_page = 'First';
    public $last_page  = 'Last';
    public $pre_bar  = '<<';
    public $next_bar = '>>';
    public $format_left = '[';
    public $format_right = ']';
    public $is_ajax = false;
    public $ajax_action_name = '';

    // 私有屬性
    private $pagebarnum = 10;
    private $totalpage = 0;
    private $nowindex = 1;
    private $url = '';
    private $offset = 0;

    // 構造函數:接受陣列配置 total, perpage, nowindex, url, ajax, page_name
    public function __construct($config) { ... }

    // 核心方法
    public function show($mode = 1) { ... }      // 輸出分頁 HTML
    public function offset() { return $this->offset; } // SQL LIMIT 起始
    public function next_page($style='') { ... }
    public function pre_page($style='') { ... }
    public function first_page($style='') { ... }
    public function last_page($style='') { ... }
    public function nowbar($style='', $nowindex_style='') { ... } // 數字條
    public function select() { ... }             // 下拉選擇
    // ... 私有輔助方法 _set_url, _set_nowindex, _get_url, _get_link, error ...
}
?>

使用範例

<?php
require_once 'page.class.php';

// 基本用法
$page = new Page(['total' => 1000, 'perpage' => 20]);
echo 'Mode 1: ' . $page->show(1) . '
'; echo 'Mode 2: ' . $page->show(2) . '
'; echo 'Mode 3: ' . $page->show(3) . '
'; echo 'Mode 4: ' . $page->show(4) . '
'; // AJAX 模式 $ajaxPage = new Page([ 'total' => 1000, 'perpage' => 20, 'ajax' => 'ajax_page', // JS 回調函數名 'page_name' => 'test' // URL 參數名 ]); echo 'AJAX Mode 1: ' . $ajaxPage->show(1); // 在頁面引入 JS 函數 ajax_page(url) 實現局部刷新 ?>

SQL 配合

<?php
$page = new Page(['total' => $totalRows, 'perpage' => 20]);
$limit = "LIMIT {$page->offset()}, 20";
$sql = "SELECT * FROM articles ORDER BY id DESC $limit";
$result = mysql_query($sql);
// 迴圈輸出數據...
echo $page->show(1);
?>

現代化建議(PHP 7.4+)

  • 使用類型聲明、標量/返回類型、嚴格模式。
  • 屬性改為 private/protected,提供 getter/setter。
  • 構造函數改為 __construct(array $config),移除 PHP 4 風格構造函數。
  • 輸出 HTML 改用模板引擎或 heredoc,分離邏輯與視圖。
  • AJAX 回調建議統一規範(如返回 JSON),前端用 fetch/axios 處理。
  • 併發安全:total 應來自 COUNT(*) 查詢,避免競態。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved