- 浏览: 603628 次
文章分类
- 全部博客 (411)
- 常用工具 (21)
- 喜好 (14)
- 英语 (3)
- java (51)
- ext (4)
- css (44)
- php (34)
- window (7)
- jquery (21)
- js (31)
- struts (4)
- tomcat (1)
- struts2 (11)
- 网络 (4)
- c# (7)
- linux (27)
- oracle (15)
- tag标签 (5)
- 生成静态页面 (6)
- sql (12)
- hibernate (13)
- DesignPattern (3)
- spring (2)
- flex (17)
- excel应用 (1)
- 报表 (2)
- 业界 (2)
- 数据建模 (1)
- 平板 (1)
- ppt (1)
- rich (1)
最新评论
-
youngdze:
受教了,谢谢!
十步解决php utf-8编码 -
DiLiya:
感谢你的讲解;帮了大忙了!
解决-innerHTML无法在TBODY中使用 -
eppen:
强的没话说。帮了大忙。感谢goby2008 ,感谢google ...
解决-innerHTML无法在TBODY中使用 -
cxs4808:
rr
flex 设计模式 -
liuxingvsyou:
3个jQuery弹出窗口插件
超强PHP分页类2.0,支持自定义风格,默认4种显示模式
1、支持PHP4和PHP5
2、增加了对ajax分页的功能
3、优化了程序整体结构
4、增加了自定义风格的功能
使用方法:
<?php 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=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test')); echo 'mode:1<br>'.$ajaxpage->show(); ?>
源代码
<?php /** * filename: ext_page.class.php * @package:phpbean * @author :feifengxlq<feifengxlq#gmail.com> * @copyright :Copyright 2006 feifengxlq * @license:version 2.0 * @create:2006-5-31 * @modify:2006-6-1 * @modify:feifengxlq 2006-11-4 * description:超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。 * 2.0增加功能:支持自定义风格,自定义样式,同时支持PHP4和PHP5, * to see detail,please visit http://www.phpobject.net/blog/read.php * example: * 模式四种分页模式: 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); 开启AJAX: $ajaxpage=new page(array('total'=>1000,'perpage'=>20,'ajax'=>'ajax_page','page_name'=>'test')); echo 'mode:1<br>'.$ajaxpage->show(); 采用继承自定义分页显示模式: demo:[url=http://www.phpobject.net/blog]http://www.phpobject.net/blog[/url] */ class page { /** * config ,public */ var $page_name="PB_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分页模式 /** * private * */ var $pagebarnum=10;//控制记录条的个数。 var $totalpage=0;//总页数 var $ajax_action_name='';//AJAX动作名 var $nowindex=1;//当前页 var $url="";//url地址头 var $offset=0; /** * constructor构造函数 * * @param array $array['total'],$array['perpage'],$array['nowindex'],$array['url'],$array['ajax']... */ function 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']);//设置pagename $this->_set_nowindex($nowindex);//设置当前页 $this->_set_url($url);//设置链接地址 $this->totalpage=ceil($total/$perpage); $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_action_name=$action; } /** * 获取显示"下一页"的代码 * * @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 '<span class="'.$style.'">'.$this->next_page.'</span>'; } /** * 获取显示“上一页”的代码 * * @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 '<span class="'.$style.'">'.$this->pre_page.'</span>'; } /** * 获取显示“首页”的代码 * * @return string */ function first_page($style='') { if($this->nowindex==1){ return '<span class="'.$style.'">'.$this->first_page.'</span>'; } return $this->_get_link($this->_get_url(1),$this->first_page,$style); } /** * 获取显示“尾页”的代码 * * @return string */ function last_page($style='') { if($this->nowindex==$this->totalpage){ return '<span class="'.$style.'">'.$this->last_page.'</span>'; } return $this->_get_link($this->_get_url($this->totalpage),$this->last_page,$style); } function nowbar($style='',$nowindex_style='') { $plus=ceil($this->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('<span class="'.$nowindex_style.'">'.$i.'</span>'); }else{ break; } $return.="\n"; } unset($begin); return $return; } /** * 获取显示跳转按钮的代码 * * @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="javascript:'.$this->ajax_action_name.'(\''.$url.'\')">'.$text.'</a>'; }else{ return '<a '.$style.' href="'.$url.'">'.$text.'</a>'; } } /** * 出错处理方式 */ function error($function,$errormsg) { die('Error in file <b>'.__FILE__.'</b> ,Function <b>'.$function.'()</b> :'.$errormsg); } } ?>
superwf 于 2008-04-11 12:50:10 发表:
function set($var,$value)那里有点问题好像
我觉得应该改成
function set($var,$value)
{
if(array_key_exists($var,get_object_vars($this)))
$this->$var=$value; //此处的$this->$var为$this->page_name,在71行带入
else {
$this->error(__FUNCTION__,$var." does not belong to PB_Page!");
}
}
另外在function select()那也加上了ajax,呵呵,这个现在流行嘛
function select($url)
{
if($this->$is_ajax){
$return='ajax_action_name.'(\''.$this->url.'\'+this.options[this.options.selectedIndex].value)">';}
else{$return='';}
for($i=1;$itotalpage;$i++)
{
if($i==$this->nowindex){
$return.=''.$i.'';
}else{
$return.=''.$i.'';
}
}
unset($i);
$return.='';
return $return;
}
[Reply]
发表评论
-
php操作mysql返回多个结果集
2010-06-21 12:36 2005有的时候你可能会用到查一次查询返回若干个结果,在php里现在不 ... -
php调用mysql存储过程返回多个结果集的处理
2010-06-21 12:35 4060回一个结果全世界都知道怎么处理,关键是返回多个结果集就不好办了 ... -
windows 下 php 环境配置
2010-06-21 12:34 9171、把php文件解压到D:\php-5.2.5下2、然后打开“ ... -
php实现google样式的分页
2010-06-21 12:33 1147Pager.class.php 代码如下 c ... -
php开发工具
2009-07-24 10:28 866xampp-windows http://www.apache ... -
MySQL 4.0 数据导入到 MySQL 5.0 可能出现的问题
2009-05-01 23:31 1888utf-8 的中文数据从 4.0 ... -
PHP实现的Mysql读写分离
2009-04-21 23:03 1097本代码是从uchome的代码修改的,是因为要解决uchome的 ... -
生成静态页面的PHP类
2009-04-03 08:55 793<?phpclass html{ var $dir ... -
PHP 计算页面执行时间
2009-04-03 08:52 901<?phpclass runtime{ var ... -
PHP汉字转拼音
2009-04-03 08:30 1252PHP汉字转拼音 -
PHP常用函数类
2009-04-03 08:18 1341<?phpclass useful{ /* * 常用 ... -
PHP常用的代码
2009-04-03 08:14 8681.取得LINUX服务器的空间大小disk_free_spac ... -
php 导入excel电子表文件2007-11-23 21:26
2009-03-16 11:16 1421<?phprequire_once '../Excel/ ... -
让Tomcat支持PHP
2009-03-16 09:49 2188在负责一个采用JSP动态网页技术的网站时,刚好手头有PHP写的 ... -
Client does not support authentication protocol re
2009-02-03 10:23 828mysql SET PASSWORD FOR 'h193070 ... -
FCKeditor的配置,上传文件的文件名乱码和目录的设定,加入兔斯基表情
2009-01-06 15:42 2844今天,需要一个简单的编辑器,找来找去还是感觉FCKeditor ... -
40个迹象表明你还是PHP菜鸟
2008-12-06 22:00 83440个迹象表明你还是PHP菜鸟 我愿意把本文归入我的“编程糗事 ... -
做一个分页显示
2008-11-27 17:16 796关键就是用到了SQL语句中的limit来限定显示的记录从几到几 ... -
Fleaphp函数用法举例
2008-11-24 22:39 1028最近用了一下Fleaphp,也是菜鸟一小只,反正我看fleap ... -
php资源网站
2008-11-21 17:23 796php开源大全 http://www.fleaphp.or ...
相关推荐
超强分页类2.0发布,支持自定义风格,默认4种显示模式 看到论坛上有人求百度分页类,所以把几周前的分页类贴出来。 2.0相对1.0修正如下: 1、支持PHP4和PHP5 2、增加了对ajax分页的功能 3、优化了程序整体结构 4、...
### PHP超强分页类知识点详解 #### 一、概述 “PHP超强分页类”是一款专为PHP开发人员设计的强大工具,旨在简化分页逻辑,提高网页应用的用户体验。该类支持多种显示模式,能够适应不同的场景需求,并且兼容PHP4和...
asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip asp源码—HHYY asp分页类(原印象分页类) ...
本压缩包提供的"超强php分页类"是针对这一需求的一个实用工具,它集成在一个小型的MVC框架中,方便开发者快速地在项目中实现高效、灵活的分页效果。 首先,我们来看"超强php分页类"的核心功能。分页类通常包含以下...
PHP超强高效分页类,带例子 超强分页类,四种分页模式,默认采用类似baidu,google的分页风格。
"Pager ASP.NET分页组件 2.0"是一款专为ASP.NET平台设计的高效分页解决方案,旨在提高Web应用程序的数据浏览体验。此组件的2.0版本是对先前版本的重大升级,尤其是在开发过程中提供了更丰富的功能和更友好的用户体验...
MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过站长不断完善和改进后推出的...
本压缩包“超强php分页打包 通用分页 万能分页 ajax分页 google分页”提供了一系列的分页解决方案,包括了基本的PHP分页、通用的分页实现、以及结合AJAX技术的动态分页,旨在满足各种项目需求。下面将详细介绍这些...
HHYY分页类(原印象分页类)根据以前1.0版本大家提出的数据量大的时候分页慢或者出错的问题本人进行了修改... 导致以前版本速度变慢的最重要原因是: 在分页导航上的<select><option>,这里其实是为了方便大家快速浏览...
"php封装的page分页类" 是一个专门用于处理这种需求的类库,它简化了PHP分页的实现过程,通过封装核心逻辑,使开发者能够快速、高效地实现分页功能。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性...
本篇文章将深入探讨一个名为"page.class.php"的PHP分页类,以及如何使用它来实现高效的分页功能。 首先,我们要理解分页的基本原理。在网页上,如果一次性加载所有数据,不仅会消耗大量服务器资源,而且可能导致...
在给定的压缩包文件“基于ASP的HHYY ASP分页类(原印象分页类) v2.0 最终版.zip”中,我们可以推测这包含了一个用于ASP应用程序的分页类库,版本为2.0,且是最后的修订版。分页是Web开发中的一个重要技术,特别是在...
ASP实例开发源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip ASP实例开发源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip ASP实例开发源码—HHYY asp分页类(原印象分页类) v2.0 最终版.zip
【HHYY分页类(原印象分页类) v2.0 最终版-ASP源码.zip】是一款基于ASP(Active Server Pages)编程语言的分页类库,它旨在帮助开发者在网页应用中实现高效、易用的分页功能。在ASP开发中,分页是必不可少的一个组件...
标题中的"一个很好的分页类php分页类"暗示我们这里有一个专门用于实现分页功能的PHP类。这个类可能包含了一系列方法,用于计算总页数、生成页码链接以及处理用户请求的特定页面。 `page.class.php`可能是这个分页类...
HHYY ASP分页类v2.0最终版的发布,表明其已经过充分的测试和调试,具有良好的兼容性和可扩展性,能够满足大部分ASP项目的需求。然而,为了适应不断变化的技术环境,开发者可能还需要关注ASP的新发展,如ASP.NET,...