//本分頁類不處理SQL;
//大大的加快了分頁功能
//http://blog.csdn.net/fkedwgwy
//瀟湘博客--瀟湘
/**
示範
require_once('../libs/classes/page.class.php');
$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 '
開始AJAX模式:';
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1
'.$ajaxpage->show();
*/
class Zend_Page
{
/**
* 配置,公用
*/
var $page_name="page"; //page標籤,用來控制url頁。例如xxx.php?PB_page=2中的PB_page
var $next_page='>';//下一頁
var $pre_page='var $first_page ='First';//首頁
var $last_page='Last';//尾頁
var $pre_bar='var $next_bar='> >';//下一分頁條
var $format_left='';
var $format_right='';
var $is_ajax=false;//是否支援AJAX分頁模式
var $is_ajax=false;//是否支援AJAX分頁模式>>";
var $per_ten_page="/**
* 私人
*
*/
var $pagebarnum=10;//控制記錄列的數量。
var $totalpage=0;//總頁數
var $ajax_acti is not a positive integer!');
if((!is_int($perpage))||($perpageerror(__FUNCTION__,$perpage.' is not a positive integer!');
if(!empty($array['page_name']))$this->set('page_name', $array['page_name']);//設定pagename
$this->_set_nowindex($nowindex);//設定目前頁面
$this->_set_url($url);//設定連結位址
$this->totalpage=ceil($total/$perpage);
$this->total=$total;
$this->offset=($this->nowindex-1)*$perpage ;
if(!empty($array['ajax']))$this->open_ajax($array['ajax']);//開啟AJAX模式
}
/**
* 設定類別中指定變數名稱的值,如果改變量不屬於這個類,將throw一個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!");
}
}
/**
* 開啟倒AJAX模式
*
* @param string $action 預設ajax觸發的動作。
*/
function open_ajax($action)
{
$this->is_ajax=true;
$this->ajax_acti
}
/**
* 取得顯示"下一頁"的程式碼
*
* @param string $style
* @return string
*/
function next_page($ style="max-width:90%"
'.$this->next_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); .'';
}
/**
* 取得顯示「上十頁」的程式碼
*
* @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->nowindex/10)*10-5),$this->pre_ten_page,$style);
}
回傳 ''.$this->pre_ten_page.'';
}
/**
* 取得顯示"下十頁"的程式碼
*
* @param string $style
* @return string
*/
function next_ten_page($style='')
{
if(intval($this->nowindex/10) totalpage/10)){
回傳$this-> _get_link($this->_get_url((intval($this->nowindex/10)+1)*10+5),$this->next_ten_page,$style); 🎜>}
返回'}
/**
* 取得顯示「首頁」的程式碼
*
* @return string
*/
函數first_page($style='')
{
if($this->nowindex==1){
return ''.$this->first_page.'';
}
return $this->_get_link($this->; _get_url(1),$ this->first_page,$style)
}
/**
* 取得顯示「尾頁」的程式碼
*
* @return string
*/
函數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);
}
函數 nowbar($style='',$nowindex_style='')
{
$plus=ceil($this->pagebarnum/2);
if($this->pagebarnum-$plus+$this->nowindex>$this->totalpage)$plus=($this->pagebarnum-$this->totalpage+$this->現在索引);
$begin=$this->nowindex-$plus+1
$begin=($begin>=1)?$begin:1;
$return=''; =$begin;$ipagebarnum;$i++)
{
if($itotalpage){
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 string
*/
函數select()
{
$return=''; return;
}
/**
* 取得mysql 語句中limit所需的值
*
* @return string
*/
函數offset()
{
return $this->offset;
/**
* 控制分頁顯示風格(你可以增加對應的風格)
*
* @param int $mode
* @return string
*/
function show($mode=1,$url='')
{
switch ($mode)
{
case '1 ':
$this->next_page='下一頁';
$this->pre_page='上一頁';
return $this->pre_page().$this->nowbar( ).$this->next_page().'第'.$this->select().'頁';
休息;
案例'2':
$this->next_page='下一頁';
$this->pre_page='上一頁';
$this->first_page='首頁';
$this->last_page='尾頁';
return $this->first_page().$this->pre_page().'[第'.$this->nowindex.'頁]'.$this->next_page().$this ->last_page().'第'.$this->select().'頁';
休息;
案例'3':
$this->next_page='下一頁';
$this->pre_page ='上一頁';
$this->first_page='首頁';
$this->last_page='尾頁';
回傳$this->first_page().$this-> pre_page().$this->next_page().$this->last_page();
休息;
案例'4':
$this->next_page='next';
$ this->pre_page='last';
返回$this->pre_page().$this->nowbar().$this->next_page();
休息;
案例'5':
返回$this->pre_bar().$this->pre_page().$this->nowbar().$this->next_page().$this ->next_bar();
休息;
case '6':
//啟用了“上一頁”,“下一頁”,“最後一頁”。可依情況啟用「第一頁」。
//$this ->first_page='';
$this->pre_page= '';
$this->next_page='';
$this->last_page='最後一頁';
//return "".$this->select()." | "."頁< ;/span>"."".$this->first_page()." | "."".$this->pre_page().""."".$this->next_page()." | " ."".$this->last_page()." | ";
return "共有[".$this->total."]件商品 ".$this ->nowindex."/".$this->totalpage. "頁"."".$this->pre_page()." ".$this->next_page(). " | "."< ;td width=145>".$this->last_page()." ".$this->select()." 頁 ";
休息;
案例' 7':
$this->next_page='';
$this->pre_page='';
$this->first_page='';
$this-> last_page='';
if($this->totalpage==0)
{$this->nowindex=0;}
回傳$this->first_page()." ".$this->; pre_page()." ".$this->next_page()." ".$this->last_page()." ".$ this->select();
休息;
case '8':
//啟用了“上一頁”,“下一頁”,“最後一頁”。可依情況啟用「第一頁」。
//$this->first_page='';
$this->pre_page='';
$this->next_page='';
$this->last_page='最後一頁';
if($this->totalpage==0)
{$this->nowindex=0;}
//return "" .$this-> select()." | "."頁 | "."「.$this->first_page().」“.” |
“.$this->pre_page().” | ”。"".$this->next_page(). " | "."".$this->last_page( )." | ";return "共有[".$ this-> total."]條訊息 ".$this->nowindex."/".$this->totalpage."頁"."".$this->pre_page( )」。 ".$this->next_page()." | "."".$this->last_page()." “.$this->select()。” 頁 "; 休息; } } /*---------------- 血管函數(血管方法)------- ----------------------------------------------------------------- ------------ ---------------*/ / ** * 設定url頭位址 * @param: String $url * @return boolean */ function _set_url($url=" ") { if(! empty($url)){ //手動設定 $this-> ;url=$url.((stristr($url,'?') )?'&':'?').$ this->page_name."="; }else{ //自動取得 if(empty($_SERVER['QUERY_STRING'])) { //不存在QUERY_STRING時 $this->url=$ _SERVER['REQUEST_URI']."?".$this->page_name."="; }else{ // if(stristr($_SERVER[ 'QUERY_STRING'],$this->page_name.'=')){ // 存在位址頁面參數 $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.'='; }//結束if }//結束if }//結束if } /** * 設定目前頁 * */ function _set_nowindex($nowindex) { if(empty($nowindex)){ //系統取得 if(isset($_GET [$this->page_name])){ $this->nowindex =intval($_GET[$this->page_name]); } }else{ //手動設定 $this->nowindex=intval($nowindex); } } /** * 為指定的頁面傳回位址值 * * @param int $pageno * @return string $url */ function _get_url($pageno=1) { return $this->url.$pageno; } /** * 取得分頁顯示文字,比如說預設_get_text('1')會回傳[1] * * @param String $str * @return string $url */ function _get_text($str) { return $this->format_left.$str.$this->format_right; } /** * 取得連結位址 */ function _get_link($url,$text,$style=''){ $style=(empty($style))?'' :'class="'.$style.'"'; if($this->is_ajax){ //如果是使用AJAX模式 return ''.$text.''; }else{ 回傳 ''.$text.''; } } /** * 出錯處理方式 */ 函數錯誤($function,$errormsg) { die('檔案中出現錯誤'. __FILE__.',函數'.$function.'():'.$errormsg); } } ?
以上就介紹了asp.net ajax PHP ajax 分頁類別程式碼,包含了asp.net ajax方面的內容,希望對PHP教學有興趣的朋友有幫助。
|