超强PHP分页类2.0发布,支持自定义风格,默认4种显示模式 _2
来源:互联网 发布:法制网络知识竞赛 编辑:程序博客网 时间:2024/05/16 10:15
* 获取显示跳转按钮的代码
*
* @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_once( '../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=newpage(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test'));
echo 'mode:1<br>'.$ajaxpage->show();
?>
效果图见附件!
提供自定义风格的演示demo一个:
<?
require_once( '../libs/classes/page.class.php');
class mypage extendspage
{
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>
- 超强PHP分页类2.0发布,支持自定义风格,默认4种显示模式 _2
- 分页类,支持自定义风格,默认4种显示模式
- PHP超强分页类2.0发布
- 超强分页类2.0发布
- 超强PHP分页类
- 超强PHP分页类
- 超强PHP分页类
- PHP超强分页类2.0使用心得
- 支持多风格变换的PHP模板分页类
- 超强、实用、简单的PHP分页类2.0
- 超强 php mysql分页类代码
- 超强分页类
- 超强PHP 分页类(转自PHPCHINA)
- PHP分页显示类
- 超强PHP集成环境,支持800多个不同PHP版本同时运行,无限自定义添加mysql与php版本
- 支持多风格变换的ASP分页类
- 支持多风格变换的ASP分页类
- 支持多风格变换的ASP分页类 图
- SAXReader.read 系统找不到指定路径
- 基于龙芯一号IP核的EJTAG调试
- Android 应用程序获得版本号
- PHP静态页面生成
- 关于自加运算符的问题
- 超强PHP分页类2.0发布,支持自定义风格,默认4种显示模式 _2
- dhtmlxScheduler在safari下动态日程显示问题处理
- C++程序设计语言--第二章:C++概览
- 矩阵连乘最优值
- php实现页面跳转的三种方法
- 亚马逊笔试
- 棋盘覆盖问题
- source insight快捷键及使用技巧
- 使用VS2005进行负载测试