Beautiful php pagination class code
- 2020-05-30 19:43:05
- OfStack
This is a simple, convenient and fully functional paging class. You can change the CSS style file according to your own needs to realize the control of paging color. By using the php paging class, you can save yourself a lot of time.
1, pager.css is included in head
<link href="pager.css" type="text/css" rel="stylesheet" />
2. Class instantiation at the paging point:
<?php
include "pager.class.php";
$CurrentPage=isset($_GET['page'])?$_GET['page']:1;
//die($CurrentPage);
$myPage=new pager(1300,intval($CurrentPage));
$pageStr= $myPage->GetPagerContent();
//echo $pageStr;
$myPage=new pager(90,intval($CurrentPage));
$pageStr= $myPage->GetPagerContent();
echo $pageStr;
?>
3. Read the mysql database and pagination calculation files and write them out by yourself. Such as:
$info=mysql_query("select * from member order by id desc limit $offset,$info_num"); This will enable you to access the mysql database, current page Numbers, and so on.
Below are 3 files in 1: (1) index.php: call paging class, display paging (2) pager.class.php: php paging class (3) pager.css: css style beautify file
(1) index. php:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>---- Paging demo -----</title>
<link href="pager.css" type="text/css" rel="stylesheet" />
</head>
<body>
<?php
include "pager.class.php";
$CurrentPage=isset($_GET['page'])?$_GET['page']:1;
//die($CurrentPage);
$myPage=new pager(1300,intval($CurrentPage));
$pageStr= $myPage->GetPagerContent();
//echo $pageStr;
$myPage=new pager(90,intval($CurrentPage));
$pageStr= $myPage->GetPagerContent();
echo $pageStr;
?>
</body>
</html>
(2) pager. class. php:
<?php
/*
* PHP Paging class
* @package Page
* @Created 2013-03-27
* @Modify 2013-03-27
* @link http://www.60ie.net
* Example:
$myPage=new Pager(1300,intval($CurrentPage));
$pageStr= $myPage->GetPagerContent();
echo $pageStr;
*/
class Pager {
private $pageSize = 10;
private $pageIndex;
private $totalNum;
private $totalPagesCount;
private $pageUrl;
private static $_instance;
public function __construct($p_totalNum, $p_pageIndex, $p_pageSize = 10,$p_initNum=3,$p_initMaxNum=5) {
if (! isset ( $p_totalNum ) || !isset($p_pageIndex)) {
die ( "pager initial error" );
}
$this->totalNum = $p_totalNum;
$this->pageIndex = $p_pageIndex;
$this->pageSize = $p_pageSize;
$this->initNum=$p_initNum;
$this->initMaxNum=$p_initMaxNum;
$this->totalPagesCount= ceil($p_totalNum / $p_pageSize);
$this->pageUrl=$this->_getPageUrl();
$this->_initPagerLegal();
}
/**
* Access to remove page Partial current URL string
*
* @return String URL string
*/
private function _getPageUrl() {
$CurrentUrl = $_SERVER["REQUEST_URI"];
$arrUrl = parse_url($CurrentUrl);
$urlQuery = $arrUrl["query"];
if($urlQuery){
$urlQuery = ereg_replace("(^|&)page=" . $this->pageIndex, "", $urlQuery);
$CurrentUrl = str_replace($arrUrl["query"], $urlQuery, $CurrentUrl);
if($urlQuery){
$CurrentUrl.="&page";
}
else $CurrentUrl.="page";
} else {
$CurrentUrl.="?page";
}
return $CurrentUrl;
}
/*
* Set the page parameter validity
*@return void
*/
private function _initPagerLegal()
{
if((!is_numeric($this->pageIndex)) || $this->pageIndex<1)
{
$this->pageIndex=1;
}elseif($this->pageIndex > $this->totalPagesCount)
{
$this->pageIndex=$this->totalPagesCount;
}
}
//$this->pageUrl}={$i}
//{$this->CurrentUrl}={$this->TotalPages}
public function GetPagerContent() {
$str = "<div class=\"Pagination\">";
// Home page on 1 page
if($this->pageIndex==1)
{
$str .="<a href='javascript:void(0)' class='tips' title=' Home page '> Home page </a> "."\n";
$str .="<a href='javascript:void(0)' class='tips' title=' on 1 page '> on 1 page </a> "."\n"."\n";
}else
{
$str .="<a href='{$this->pageUrl}=1' class='tips' title=' Home page '> Home page </a> "."\n";
$str .="<a href='{$this->pageUrl}=".($this->pageIndex-1)."' class='tips' title=' on 1 page '> on 1 page </a> "."\n"."\n";
}
/*
In addition to the first last Page paging logic
*/
//10 Page (including) below
$currnt="";
if($this->totalPagesCount<=10)
{
for($i=1;$i<=$this->totalPagesCount;$i++)
{
if($i==$this->pageIndex)
{ $currnt=" class='current'";}
else
{ $currnt=""; }
$str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;
}
}else //10 Page above
{ if($this->pageIndex<3) // Current page less than 3
{
for($i=1;$i<=3;$i++)
{
if($i==$this->pageIndex)
{ $currnt=" class='current'";}
else
{ $currnt=""; }
$str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;
}
$str.="<span class=\"dot\"> ... </span>"."\n";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)// function 1
{
$str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;
}
}elseif($this->pageIndex<=5) // 5 >= The current page >= 3
{
for($i=1;$i<=($this->pageIndex+1);$i++)
{
if($i==$this->pageIndex)
{ $currnt=" class='current'";}
else
{ $currnt=""; }
$str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;
}
$str.="<span class=\"dot\"> ... </span>"."\n";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)// function 1
{
$str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;
}
}elseif(5<$this->pageIndex && $this->pageIndex<=$this->totalPagesCount-5 ) // Current page greater than 5 Is smaller than the total number of pages -5
{
for($i=1;$i<=3;$i++)
{
$str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;
}
$str.="<span class=\"dot\"> ... </span>";
for($i=$this->pageIndex-1 ;$i<=$this->pageIndex+1 && $i<=$this->totalPagesCount-5+1;$i++)
{
if($i==$this->pageIndex)
{ $currnt=" class='current'";}
else
{ $currnt=""; }
$str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;
}
$str.="<span class=\"dot\"> ... </span>";
for($i=$this->totalPagesCount-3+1;$i<=$this->totalPagesCount;$i++)
{
$str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;
}
}else
{
for($i=1;$i<=3;$i++)
{
$str .="<a href='{$this->pageUrl}={$i}' >$i</a>"."\n" ;
}
$str.="<span class=\"dot\"> ... </span>"."\n";
for($i=$this->totalPagesCount-5;$i<=$this->totalPagesCount;$i++)// function 1
{
if($i==$this->pageIndex)
{ $currnt=" class='current'";}
else
{ $currnt=""; }
$str .="<a href='{$this->pageUrl}={$i} ' {$currnt}>$i</a>"."\n" ;
}
}
}
/*
In addition to the first last Page paging logic ends
*/
// Under the 1 page At the end of the page
if($this->pageIndex==$this->totalPagesCount)
{
$str .="\n"."<a href='javascript:void(0)' class='tips' title=' Under the 1 page '> Under the 1 page </a>"."\n" ;
$str .="<a href='javascript:void(0)' class='tips' title=' At the end of the page '> At the end of the page </a>"."\n";
}else
{
$str .="\n"."<a href='{$this->pageUrl}=".($this->pageIndex+1)."' class='tips' title=' Under the 1 page '> Under the 1 page </a> "."\n";
$str .="<a href='{$this->pageUrl}={$this->totalPagesCount}' class='tips' title=' At the end of the page '> At the end of the page </a> "."\n" ;
}
$str .= "</div>";
return $str;
}
/**
* For instance
* @return
*/
// static public function getInstance() {
// if (is_null ( self::$_instance )) {
// self::$_instance = new pager ();
// }
// return self::$_instance;
// }
}
?>
(3) pager. css:
body,html{ padding:0px; margin:0px; color:#333333; font-family:" Song typeface ",Arial,Lucida,Verdana,Helvetica,sans-serif; font-size:12px; line-height:150%;}
h1,h2,h3,h4,h5,h6,ul,li,dl,dt,dd,form,img,p,label{margin:0; padding:0; border:none; list-style-type:none;}
/** Foreground page style **/
.Pagination {margin:10px 0 0;padding:5px 0;text-align:rightright; height:20px; line-height:20px; font-family:Arial, Helvetica, sans-serif," Song typeface ";}
.Pagination a {margin-left:2px;padding:2px 7px 2px;}
.Pagination .dot{ border:medium none; padding:4px 8px}
.Pagination a:link, .Pagination a:visited {border:1px solid #dedede;color:#696969;text-decoration:none;}
.Pagination a:hover, .Pagination a:active, .Pagination a.current:link, .Pagination a.current:visited {border:1px solid #dedede;color:#fff; background-color:#ff6600; background-image:none; border:#ff6600 solid 1px;}
.Pagination .selectBar{ border:#dedede solid 1px; font-size:12px; width:95px; height:21px; line-height:21px; margin-left:10px; display:inline}
.Pagination a.tips{_padding:4px 7px 1px;}
Reprint: http: / / 60 ie net/article / 8/365. html