* 获取显示跳转按钮的代码
*
* @return string
*/
function select ()
{
$return='<select name="PB_Page_Select">' ;
for($i=1;$i<=$this->totalpage;$i ++)
{
if($i==$this->nowindex ){
$return.='<option value="'.$i.'" selected>'.$i.'</option>' ;
}else{
$return.='<option value="'.$i.'">'.$i.'</option>' ;
}
}
unset($i );
$return.='</select>' ;
return $return ;
}
/**
* 获取mysql 语句中limit需要的值
*
* @return string
*/
function offset ()
{
return $this->offset ;
}
/**
* 控制分页显示风格(你可以增加相应的风格)
*
* @param int $mode
* @return string
*/
function show($mode=1 )
{
switch ($mode )
{
case '1' :
$this->next_page='下一页' ;
$this->pre_page='上一页' ;
return $this->pre_page().$this->nowbar().$this->next_page().'第'.$this->select().'页' ;
break;
case '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().'页' ;
break;
case '3' :
$this->next_page='下一页' ;
$this->pre_page='上一页' ;
$this->first_page='首页' ;
$this->last_page='尾页' ;
return $this->first_page().$this->pre_page().$this->next_page().$this->last_page ();
break;
case '4' :
$this->next_page='下一页' ;
$this->pre_page='上一页' ;
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;
}
}
/*----------------private function (私有方法)-----------------------------------------------------------*/
/**
* 设置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.'=' ;
} //end if
} //end if
} //end 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('<a href="">1</a>')将返回[<a href="">1</a>]
*
* @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 '<a '.$style.' href="javas
}else{
return '<a '.$style.' href="'.$url.'">'.$text.'</a>' ;
}
}
/**
* 出错处理方式
*/
function error($function,$errormsg )
{
die('Error in file <b>'.__FILE__.'</b> ,Function <b>'.$function.'()</b> :'.$errormsg );
}
}
?>
提供一个简单的演示demo
<?
require_on ce('../libs/classes/page.class.php');
$page=new page(array('total'=>1000,'perpage'=>20));
echo 'mode:1<br>'.$page->show();
echo '<hr>mode:2<br>'.$page->show(2);
echo '<hr>mode:3<br>'.$page->show(3);
echo '<hr>mode:4<br>'.$page->show(4);
echo '<hr>开始AJAX模式:';
$ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1<br>'.$ajaxpage->show();
?>
效果图见附件!
提供自定义风格的演示demo一个:
<?
require_on ce('../libs/classes/page.class.php');
class mypage extends page
{
function mypage($array)
{
parent::page($array);
$this->first_page=1;
$this->last_page=$this->totalpage;
$this->set('format_left','');
$this->set('format_right','');
}
function show()
{
$pagestr='<div class="pagenavi" id="lopage">页:';
$pagestr.=$this->first_page().' ';
$pagestr.=$this->nowbar('','curr');
$pagestr.='<span class="break">...</span>';
$pagestr.=$this->last_page();
$pagestr.=' (总计<span class="num">'.$this->totalpage.'</span>页) </div>';
$pagestr.='</div>';
return $pagestr;
}
}
$page=new mypage(array('total'=>1000,'perpage'=>20));
echo $page->show();
?>
其中用到的CSS样式
<style type="text/css">
<!--
.pagenavi { text-align:center; font: 11px Arial, tahoma, sans-serif; padding-top: 20px; padding-bottom: 10px; margin: 0px; }
.pagenavi a {border: 1px solid #E2F1AF; background: #FFFFFF; text-decoration: none; color:#C16012; display:inline-block; padding-left:6px; padding-right:6px; padding-top:2px; padding-bottom:2px}
.pagenavi a:visited {border: 1px solid #E2F1AF; background: #FFFFFF; text-decoration: none; padding-left:6px; padding-right:6px; padding-top:2px; padding-bottom:2px}
.pagenavi .break {border: medium none; text-decoration: none; color:#C16012; background:;; padding-left:6px; padding-right:6px; padding-top:2px; padding-bottom:2px}
.pagenavi .num {color:#C16012; font-size:12pt; padding-left:3px; padding-right:3px; padding-top:0; padding-bottom:0}
.pagenavi .curr {padding: 2px 6px; border-color: #999; font-weight: bold; font-size:12pt; background:transparent;}
.pagenavi a:hover {color: #C16012; background: #E2F1AF; text-decoration: none}
-->
</style>