PHP Ajax Page Class Code _php tutorial

Source: Internet
Author: User

This sub-page class does not handle SQL;
Greatly accelerates the paging function
Http://blog.csdn.net/fkedwgwy
Xiaoxiang Blog--Xiaoxiang
/**
Demonstrate
Require_once ('.. /libs/classes/page.class.php ');
$page =new page (Array (' Total ' =>1000, ' perpage ' =>20));
Echo ' Mode:1
'. $page->show ();
Echo ' Mode:2
'. $page->show (2);
Echo ' Mode:3
'. $page->show (3);
Echo ' Mode:4
'. $page->show (4);
Echo ' Start Ajax mode: ';
$ajaxpage =new page (Array (' Total ' =>1000, ' perpage ' =>20, ' ajax ' = ' ajax_page ', ' page_name ' = ' test '));
Echo ' Mode:1
'. $ajaxpage->show ();
*/
Class Zend_page
{
/**
* Config, public
*/
var $page _name= "page";//page tag, used to control the URL page. such as xxx.php? The Pb_page in pb_page=2
var $next _page= ' > ';//Next page
var $pre _page= ' < ';//prev
var $first _page= ' first ';//Home
var $last _page= ' last ';//End
var $pre _bar= ' << ';//previous page bar
var $next _bar= ' >> ';//Next page Bar
var $format _left= ';
var $format _right= ';
var $is whether _ajax=false;//supports Ajax paging mode
var $next _ten_page= ">>>";
var $per _ten_page= "<<<";

/**
* Private
*
*/
var $pagebarnum =10;//Control the number of record bars.
var $totalpage total Pages =0;//
var $ajax _action_name= ";//ajax action Name
var $nowindex =1;//Current Page
var $url = "";//url address Header
var $offset = 0;
var $total = ';

/**
* Constructor Constructor
*
* @param array $array [' total '], $array [' Perpage '], $array [' Nowindex '], $array [' url '], $array [' Ajax '] ...
*/
function Zend_page ($array)
{
if (Is_array ($array)) {
if (!array_key_exists (' Total ', $array)) $this->error (__function__, ' need a param of total ');
$total =intval ($array [' total ']);
$perpage = (array_key_exists (' Perpage ', $array))? intval ($array [' Perpage ']): 10;
$nowindex = (array_key_exists (' Nowindex ', $array))? intval ($array [' Nowindex ']): ';
$url = (array_key_exists (' url ', $array))? $array [' url ']: ';
}else{
$total = $array;
$perpage = 10;
$nowindex = ";
$url = ";
}
if ((!is_int ($total)) | | ($total <0)) $this->error (__function__, $total. ' is not a positive integer! ');
if ((!is_int ($perpage)) | | ($perpage <=0)) $this->error (__function__, $perpage. ' is not a positive integer! ');
if (!empty ($array [' page_name '])) $this->set (' page_name ', $array [' page_name ']);//set PAGENAME
$this->_set_nowindex ($nowindex);//Set the current page
$this->_set_url ($url);//Set link address
$this->totalpage=ceil ($total/$perpage);
$this->total= $total;
$this->offset= ($this->nowindex-1) * $perpage;
if (!empty ($array [' Ajax])) $this->open_ajax ($array [' Ajax ']);//Open Ajax mode
}
/**
* Set the value of the variable name specified in the class, if the change does not belong to this class, will throw a exception
*
* @param string $var
* @param string $value
*/
function set ($var, $value)
{
if (In_array ($var, Get_object_vars ($this)))
$this $var = $value;
else {
$this->error (__function__, $var. "Does not belong to pb_page!");
}

}
/**
* Turn on inverted Ajax mode
*
* @param string $action The default Ajax-triggered action.
*/
function Open_ajax ($action)
{
$this->is_ajax=true;
$this->ajax_action_name= $action;
}
/**
* Get the code that shows "next page"
*
* @param string $style
* @return String
*/
function Next_page ($style = ")
{
if ($this->nowindex< $this->totalpage) {
return $this->_get_link ($this->_get_url ($this->nowindex+1), $this->next_page, $style);
}
Return ' '. $this->next_page. '';
}

/**
* Get the code that shows "previous page"
*
* @param string $style
* @return String
*/
function Pre_page ($style = ")
{
if ($this->nowindex>1) {
return $this->_get_link ($this->_get_url ($this->nowindex-1), $this->pre_page, $style);
}
Return ' '. $this->pre_page. '';
}

/**
* Get the code that says "page 10"
*
* @param string $style
* @return String
*/
function Pre_ten_page ($style = ")
{
if (Intval ($this->nowindex/10) +1>1) {
return $this->_get_link ($this->_get_url (intval ($this-&GT;NOWINDEX/10) *10-5), $this->pre_ten_page, $style );
}
Return ' '. $this->pre_ten_page. '';
}

/**
* Get the code that shows "next 10 pages"
*
* @param string $style
* @return String
*/
function Next_ten_page ($style = ")
{
if (Intval ($this-&GT;NOWINDEX/10) TOTALPAGE/10)) {
return $this->_get_link ($this->_get_url ((intval ($this->nowindex/10) +1) *10+5), $this->next_ten_page,$ Style);
}
Return ' '. $this->next_ten_page. '';
}

/**
* Get the code that shows "home page"
*
* @return String
*/
function First_page ($style = ")
{
if ($this->nowindex==1) {
Return ' '. $this->first_page. '';
}
return $this->_get_link ($this->_get_url (1), $this->first_page, $style);
}

/**
* Get the code that shows "last"
*
* @return String
*/
function Last_page ($style = ")
{
if ($this->nowindex== $this->totalpage) {
Return ' '. $this->last_page. '';
}
return $this->_get_link ($this->_get_url ($this->totalpage), $this->last_page, $style);
}

function Nowbar ($style = ", $nowindex _style=")
{
$plus =ceil ($this-&GT;PAGEBARNUM/2);
if ($this->pagebarnum-$plus + $this->nowindex> $this->totalpage) $plus = ($this->pagebarnum-$this totalpage+ $this->nowindex);
$begin = $this->nowindex-$plus +1;
$begin = ($begin >=1)? $begin: 1;
$return = ";
for ($i = $begin; $i < $begin + $this->pagebarnum; $i + +)
{
if ($i <= $this->totalpage) {
if ($i! = $this->nowindex)
$return. = $this->_get_text ($this->_get_link ($this->_get_url ($i), $i, $style));
Else
$return. = $this->_get_text (' '. $i. '');
}else{
Break
}
$return. = "\ n";
}
Unset ($begin);
return $return;
}
/**
* Get the code to show the Jump button
*
* @return String
*/
function Select ()
{
$return = ' '; for ($i =1; $i <= $this->totalpage; $i + +) {if ($i = = $this->nowindex) {$return. = ''. $i. '; }else{$return. = ''. $i. '; }} unset ($i); $return. = '';
return $return;
}

/**
* Get the value required for limit in MySQL statement
*
* @return String
*/
function offset ()
{
return $this->offset;
}

/**
* Control the pagination display style (you can add the corresponding style)
*
* @param int $mode
* @return String
*/
Function Show ($mode =1, $url = ")
{
Switch ($mode)
{
Case ' 1 ':
$this->next_page= ' next page ';
$this->pre_page= ' previous page ';
return $this->pre_page (). $this->nowbar (). $this->next_page (). ' Section '. $this->select (). ' Page ';
Break
Case ' 2 ':
$this->next_page= ' next page ';
$this->pre_page= ' previous page ';
$this->first_page= ' home ';
$this->last_page= ' last ';
return $this->first_page (). $this->pre_page (). ' [No. $this->nowindex] '. $this->next_page (). $this->last_page (). ' Section '. $this->select (). ' Page ';
Break
Case ' 3 ':
$this->next_page= ' next page ';
$this->pre_page= ' previous page ';
$this->first_page= ' home ';
$this->last_page= ' last ';
return $this->first_page (). $this->pre_page (). $this->next_page (). $this->last_page ();
Break
Case ' 4 ':
$this->next_page= ' next ';
$this->pre_page= ' last ';
return $this->pre_page (). $this->nowbar (). $this->next_page ();
Break
Case ' 5 ':
return $this->pre_bar (). $this->pre_page (). $this->nowbar (). $this->next_page (). $this->next_bar ();
Break
Case ' 6 ':
The previous page, next page, last page are enabled. The first page can be enabled as appropriate.
$this->first_page= ';
$this->pre_page= ';
$this->next_page= ';
$this->last_page= ' last page ';
Return "". $this->select ().""." page"."". $this->first_page ().""."". $this->pre_page ().""."". $this->next_page ().""."". $this->last_page ()."";
Return "Total [". $this->total.] Item ". $this->nowindex. /". $this->totalpage." Page"."". $this->pre_page ()." ". $this->next_page ().""."". $this->last_page ()." ". $this->select ()." Page ";
Break
Case ' 7 ':
$this->next_page= ';
$this->pre_page= ';
$this->first_page= ';
$this->last_page= ';
if ($this->totalpage==0)
{$this->nowindex=0;}
return $this->first_page (). " ". $this->pre_page ()." ". $this->next_page ()." ". $this->last_page ()." ". $this->select ();
Break
Case ' 8 ':
The previous page, next page, last page are enabled. The first page can be enabled as appropriate.
$this->first_page= ';
$this->pre_page= ';
$this->next_page= ';
$this->last_page= ' last page ';
if ($this->totalpage==0)
{$this->nowindex=0;}
Return "". $this->select ().""." page"."". $this->first_page ().""."". $this->pre_page ().""."". $this->next_page ().""."". $this->last_page ()."";
Return "Total [". $this->total.] Message ". $this->nowindex." /". $this->totalpage." Page"."". $this->pre_page ()." ". $this->next_page ().""."". $this->last_page ()." ". $this->select ()." Page ";
Break
}

}
/*----------------Private Function (proprietary method)-----------------------------------------------------------*/
/**
* Set URL header address
* @param: String $url
* @return Boolean
*/
function _set_url ($url = "")
{
if (!empty ($url)) {
Manually set
$this->url= $url. (Stristr ($url, '? '))? ' & ': '? '). $this->page_name. " =";
}else{
Automatically get
if (Empty ($_server[' query_string ')) {
When there is no query_string
$this->url=$_server[' Request_uri ']. "?". $this->page_name. " =";
}else{
//
if (Stristr ($_server[' query_string '), $this->page_name. ' =')){
Address exists page parameter
$this->url=str_replace ($this->page_name. ' = '. $this->nowindex, ' ', $_server[' Request_uri ']);
$last = $this->url[strlen ($this->url)-1];
if ($last = = '? ' | | $last = = ' & ') {
$this->url.= $this->page_name. " =";
}else{
$this->url.= ' & $this->page_name. " =";
}
}else{
//
$this->url=$_server[' Request_uri ']. ' & '. $this->page_name. ' =';
}//end if
}//end if
}//end if
}

/**
* Set Current page
*
*/
function _set_nowindex ($nowindex)
{
if (empty ($nowindex)) {
System acquisition

if (Isset ($_get[$this->page_name])) {
$this->nowindex=intval ($_get[$this->page_name]);
}
}else{
Manually set
$this->nowindex=intval ($nowindex);
}
}

/**
* Returns the address value for the specified page
*
* @param int $pageno
* @return String $url
*/
function _get_url ($pageno =1)
{
Return $this->url. $pageno;
}

/**
* Get pagination display text, e.g. _get_text (' 1 ') will return by default [1]
*
* @param String $str
* @return String $url
*/
function _get_text ($STR)
{
Return $this->format_left. $str. $this->format_right;
}

/**
* Get link address
*/
function _get_link ($url, $text, $style = ") {
$style = (Empty ($style))? ": ' class=" '. $style. ' ";
if ($this->is_ajax) {
If you are using AJAX mode
Return ' Ajax_action_name. ' (\ '. $url. ') \ ') ' > ' $text. ';
}else{
Return '. $text. ';
}
}
/**
* Error Handling method
*/
Function error ($function, $errormsg)
{
Die (' Error in file ' '. __file__. ', Function '. $function. ' (): '. $errormsg);
}
}
?>

http://www.bkjia.com/PHPjc/319588.html www.bkjia.com true http://www.bkjia.com/PHPjc/319588.html techarticle ? PHP//Page class does not handle SQL;//greatly accelerates paging function//http://blog.csdn.net/fkedwgwy//Xiaoxiang Blog--Xiaoxiang/** demo require_once (' ... /libs/classes/page.class.php ');

  • Related Article

    Contact Us

    The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

    If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.