`
yanli_xu
  • 浏览: 52015 次
  • 性别: Icon_minigender_1
  • 来自: 山东
社区版块
存档分类
最新评论

php分页类代码

    博客分类:
  • PHP
阅读更多
<?php
/**
 * 简单分页类
 *
 */
class Pagination
{

	/**
	 * 分页显示样式一
	 *
	 * @param int $allItemTotal 所有记录数量
	 * @param int $currPageNum 当前页数量
	 * @param int $pageSize  每页需要显示记录的数量
	 * @param string $pageName  当前页面的地址, 如果为空则由系统自动获取,缺省为空
	 * @param array $getParamList  页面中需要传递的URL参数数组, 数组中key代表变量民,value代表变量值
	 * @return string  返回最后解析出分页HTML代码, 可以直接使用
	 * @example 
	 * 	echo cps_split_page(100, 2, 10, 'page.php', array('uid'=>1001, 'gid'=>2008));
	 * 	
	 *  输出: [上一页]  1<<  [1] [2]  [3]  [4]  [5]  [6]  [7]  [8]  [9]  [10]  >>10 [下一页]
	 */
	public static function split1($allItemTotal, $currPageNum, $pageSize, $pageName='',  $getParamList = array()){
		if ($allItemTotal == 0) return "";
	
		//页面名称
		if ($pageName==''){
			$url = $_SERVER['PHP_SELF']."?page=";
		} else {
			$url = $pageName."?page=";
		}
		
		//参数
		$urlParamStr = "";
		foreach ($getParamList as $key => $val) {
			$urlParamStr .= "&amp;". $key ."=". $val;
		}
		//计算总页数
		$pagesNum = ceil($allItemTotal/$pageSize);
		
		//第一页显示
		$firstPage = ($currPageNum <= 1) ? $currPageNum ."</b>&lt;&lt;" : "<a href=". $url ."1". $urlParamStr ." title='第1页'>1&lt;&lt;</a>";
		
		//最后一页显示
		$lastPage = ($currPageNum >= $pagesNum)? "&gt;&gt;". $currPageNum : "<a href=". $url . $pagesNum . $urlParamStr." title='第". $pagesNum ."页'>&gt;&gt;". $pagesNum ."</a>";
		
		//上一页显示
		$prePage  = ($currPageNum <= 1) ? "上页" : "<a href=". $url . ($currPageNum-1) . $urlParamStr ." accesskey='p'  title='上一页'>[上一页]</a>";
		
		//下一页显示
		$nextPage = ($currPageNum >= $pagesNum) ? "下页" : "<a href=". $url . ($currPageNum+1) . $urlParamStr ."  title='下一页'>[下一页]</a>";
		
		//按页显示
		$listNums = "";
		for ($i=($currPageNum-4); $i<($currPageNum+9); $i++) {
			if ($i < 1 || $i > $pagesNum) continue;
			if ($i == $currPageNum) $listNums.= "[".$i."]&nbsp;";
			else $listNums.= "&nbsp;<a href=". $url . $i . $urlParamStr ." title='第". $i ."页'>[". $i ."]</a>&nbsp;";
		}
		
		$returnUrl = $prePage ."&nbsp;&nbsp;". $firstPage ." ". $listNums ."&nbsp;". $lastPage ."&nbsp;". $nextPage;
		
		return $returnUrl;
	}


	/**
	 * 分页显示样式二
	 * 
	 * @param int $allItemTotal 所有记录数量
	 * @param int $currPageNum 当前页数量
	 * @param int $pageSize  每页需要显示记录的数量
	 * @param string $pageName  当前页面的地址, 如果为空则由系统自动获取,缺省为空
	 * @param array $getParamList  页面中需要传递的URL参数数组, 数组中key代表变量民,value代表变量值
	 * @return string  返回最后解析出分页HTML代码, 可以直接使用
	 * @example 
	 *   echo pageStyle1(50, 2, 10, 's.php', array('id'=>1, 'name'=>'user'));
	 *
	 *   输出:上一页   1  2  3  4  5   下一页   [2] [GO]
	 */
	public static function split2($allItemTotal, $currPageNum, $pageSize, $pageName='',  $getParamList = array()){
		if ($allItemTotal == 0) return "";
	
		//页面名称
		if ($pageName==''){
			$url = $_SERVER['PHP_SELF']."?page=";
		} else {
			$url = $pageName."?page=";
		}
		
		//参数
		$urlParamStr = "";
		foreach ($getParamList as $key => $val) {
			$urlParamStr .= "&amp;". $key ."=". $val;
		}
		//计算总页数
		$pagesNum = ceil($allItemTotal/$pageSize);
		
		//上一页显示
		$prePage  = ($currPageNum <= 1) ? "上一页" : "<a href=". $url . ($currPageNum-1) . $urlParamStr ." accesskey='p'  title='上一页'>上一页</a>";
		
		//下一页显示
		$nextPage = ($currPageNum >= $pagesNum) ? "下一页" : "<a href=". $url . ($currPageNum+1) . $urlParamStr ."  title='下一页'>下一页</a>";
		
		//按页显示
		$listNums = "";
		for ($i=($currPageNum-4); $i<($currPageNum+9); $i++) {
			if ($i < 1 || $i > $pagesNum) continue;
			if ($i == $currPageNum) $listNums.= "&nbsp;".$i."&nbsp;";
			else $listNums.= "&nbsp;<a href=". $url . $i . $urlParamStr ." title='第". $i ."页'>". $i ."</a>&nbsp;";
		}
		
		$returnUrl = $prePage ."&nbsp;&nbsp;". $listNums ."&nbsp;&nbsp;". $nextPage;
		$gotoForm = '&nbsp&nbsp; <input type="text" size="2" id="page_input" value="'. $currPageNum .'" /><input type="button" value="Go" onclick="location.href=\''. $url .'\'+document.getElementById(\'page_input\').value+\''. $urlParamStr .'\'" />';
		
		return $returnUrl . $gotoForm;
	}


	/**
	 * 分页显示样式三
	 * 
	 * @param int $allItemTotal 所有记录数量
	 * @param int $currPageNum 当前页数量
	 * @param int $pageSize  每页需要显示记录的数量
	 * @param string $pageName  当前页面的地址, 如果为空则由系统自动获取,缺省为空
	 * @param array $getParamList  页面中需要传递的URL参数数组, 数组中key代表变量民,value代表变量值
	 * @return string  返回最后解析出分页HTML代码, 可以直接使用
	 * @example 
	 *   echo pageStyle1(50, 2, 10, 's.php', array('id'=>1, 'name'=>'user'));
	 *
	 *   输出:上一页  下一页
	 */	
	public static function split3($allItemTotal, $currPageNum, $pageSize, $pageName='',  $getParamList = array()){
		if ($allItemTotal == 0) return "";
	
		//页面名称
		if ($pageName==''){
			$url = $_SERVER['PHP_SELF']."?page=";
		} else {
			$url = $pageName."?page=";
		}
		
		//参数
		$urlParamStr = "";
		foreach ($getParamList as $key => $val) {
			$urlParamStr .= "&amp;". $key ."=". $val;
		}
		//计算总页数
		$pagesNum = ceil($allItemTotal/$pageSize);
		
		//上一页显示
		$prePage  = ($currPageNum <= 1) ? "上一页" : "<a href=". $url . ($currPageNum-1) . $urlParamStr ." accesskey='p'  title='上一页'>上一页</a>";
		
		//下一页显示
		$nextPage = ($currPageNum >= $pagesNum) ? "下一页" : "<a href=". $url . ($currPageNum+1) . $urlParamStr ."  title='下一页'>下一页</a>";
		
		$returnUrl = $prePage ."&nbsp;&nbsp;". $nextPage;		
		return $returnUrl;
	}


    /**
     * 分页显示4
     * 
     * @param int $allItemTotal 所有记录数量
     * @param int $currPageNum 当前页数量
     * @param int $pageSize  每页需要显示记录的数量
     * @param string $pageName  当前页面的地址, 如果为空则由系统自动获取,缺省为空
     * @param array $getParamList  页面中需要传递的URL参数数组, 数组中key代表变量民,value代表变量值
     * @return string  返回最后解析出分页HTML代码, 可以直接使用
     * @example 
     *   echo pageStyle1(50, 2, 10, 's.php', array('id'=>1, 'name'=>'user'));
     *
     *   输出:第2/50页 上一页 1 2 3 4 5 下一页  跳到 [  ] 页 [GO]
     */
     public static function split4($allItemTotal, $currPageNum, $pageSize, $pageName='',  $getParamList = array()){
        if ($allItemTotal == 0) return "";
    
        //页面名称
        if ($pageName==''){
            $url = $_SERVER['PHP_SELF']."?page=";
			$formUrl = $_SERVER['PHP_SELF']."?";
        } else {
            $url = $pageName."?page=";
			$formUrl = $pageName."?";
        }
        
        //参数
        $urlParamStr = "";
        foreach ($getParamList as $key => $val) {
            $urlParamStr .= "&amp;". $key ."=". $val;
        }
		$formUrl .= $urlParamStr ."&page=";

        //计算总页数
        $pagesNum = ceil($allItemTotal/$pageSize);
        
        //上一页显示
        $prePage  = ($currPageNum <= 1) ? "上一页" : "<a href='". $url . ($currPageNum-1) . $urlParamStr ."'  title='上一页' class='page_pre'>上一页</a>";
        
        //下一页显示
        $nextPage = ($currPageNum >= $pagesNum) ? "下一页" : "<a href='". $url . ($currPageNum+1) . $urlParamStr ."'  title='下一页' class='page_next'>下一页</a>";
        
        //按页显示
        $listNums = "<select name='page_select' id='page_select'>\n";
        for ($i=1; $i<=$pagesNum; $i++) {
            if ($i < 1 || $i > $pagesNum) continue;
            if ($i == $currPageNum) $listNums .= "<option selected=true>{$i}</option>\n";
            else $listNums .= "<option>{$i}</option>\n";
        }
        $listNums .= "</select>\n";
        
        $returnUrl =  $prePage .' '. $nextPage . ' 共有'.$pagesNum.'页  跳到 '.$listNums ."&nbsp;页 ";
        $script =<<<EOF
        <script type="text/javascript">
        function _pageSelect(url){
            var o = document.getElementById("page_select");
            var v = o.options[o.selectedIndex].text;
            window.location.replace(url+v);
        }            
        </script>
            
EOF;
        $gotoForm = ' <a href="javascript:_pageSelect(\''.$formUrl.'\');" onclick="//_pageSelect(\''.$formUrl.'\')">GO</a>';
        
        return $script . $returnUrl . $gotoForm;
    }


    /**
     * 分页显示5
     * 
     * @param int $allItemTotal 所有记录数量
     * @param int $currPageNum 当前页数量
     * @param int $pageSize  每页需要显示记录的数量
     * @param string $pageName  当前页面的地址, 如果为空则由系统自动获取,缺省为空
     * @param array $getParamList  页面中需要传递的URL参数数组, 数组中key代表变量民,value代表变量值
     * @return string  返回最后解析出分页HTML代码, 可以直接使用
     * @example 
     *   echo pageStyle1(50, 2, 10, 's.php', array('id'=>1, 'name'=>'user'));
     *
     *   输出:第2/50页 上一页 1 2 3 4 5 下一页  跳到 [  ] 页 [GO]
     */
     public static function split5($allItemTotal, $currPageNum, $pageSize, $pageName='',  $getParamList = array()){
        if ($allItemTotal == 0) return "";
    
        //页面名称
        if ($pageName==''){
            $url = $_SERVER['PHP_SELF']."?page=";
			$formUrl = $_SERVER['PHP_SELF']."?";
        } else {
            $url = $pageName."?page=";
			$formUrl = $pageName."?";
        }
        
        //参数
        $urlParamStr = "";
        foreach ($getParamList as $key => $val) {
            $urlParamStr .= "&amp;". $key ."=". $val;
        }
		$formUrl .= $urlParamStr ."&page=";

        //计算总页数
        $pagesNum = ceil($allItemTotal/$pageSize);
        
        //上一页显示
        $prePage  = ($currPageNum <= 1) ? "上一页" : "<a href='". $url . ($currPageNum-1) . $urlParamStr ."'  title='上一页' class='page_pre'>上一页</a>";
        
        //下一页显示
        $nextPage = ($currPageNum >= $pagesNum) ? "下一页" : "<a href='". $url . ($currPageNum+1) . $urlParamStr ."'  title='下一页' class='page_next'>下一页</a>";
        
        //按页显示
        $listNums = "";
        for ($i=($currPageNum-1); $i<($currPageNum+4); $i++) {
            if ($i < 1 || $i > $pagesNum) continue;
            if ($i == $currPageNum) $listNums.= "&nbsp;<span class='page_cur'>".$i."</span>";
            else $listNums.= "&nbsp;<a href='". $url . $i . $urlParamStr ."' title='第". $i ."页' class='page_other'>". $i ."</a>";
        }
        
        $returnUrl = '<span class="page_text">第'.$currPageNum.'/'.$pagesNum.'页</span> '. $prePage ." ". $listNums ."&nbsp;". $nextPage;
        $gotoForm = ' <span class="page_jump">跳到 <input type="text" class="page_enter" style="width:20px;" id="page_input" value="'. $currPageNum .'" /> 页 <input type="button" value="Go" class="page_submit" onclick="location.href=\''. $url .'\'+document.getElementById(\'page_input\').value+\''. $urlParamStr .'\'" />';
        
        return $returnUrl . $gotoForm;
    }


}

/*
例子:
$allItemTotal = 1000;
$currPageNum = isset($_GET['page']) ? $_GET['page'] : 1;
$pageSize = 5;
$pageName='';
$getParamList = array('classid'=>44);

$pagination = new Pagination();
echo $pagination->split1($allItemTotal, $currPageNum, $pageSize, $pageName, $getParamList)."<br />";
echo $pagination->split2($allItemTotal, $currPageNum, $pageSize, $pageName, $getParamList)."<br />";
echo $pagination->split3($allItemTotal, $currPageNum, $pageSize, $pageName, $getParamList)."<br />";
echo $pagination->split4($allItemTotal, $currPageNum, $pageSize, $pageName, $getParamList)."<br />";
echo $pagination->split5($allItemTotal, $currPageNum, $pageSize, $pageName, $getParamList)."<br />";
*/
?>
分享到:
评论

相关推荐

    一个简单好用的php分页类代码.zip

    本资源提供了一个简单易用的PHP分页类代码,适用于那些希望快速实现分页功能的开发者。下面将详细介绍这个分页类的工作原理和使用方法。 1. 分页类的基本概念 分页类是一种封装了分页逻辑的对象,它通常包含计算...

    仿Aspnetpager的一个PHP分页类代码 附源码下载

    【知识点详解】 本文主要介绍了一个基于PHP实现的仿...这个PHP分页类代码结构清晰,易于理解和扩展,适合PHP初学者用来学习和实践。通过理解并运用此类,开发者可以快速在自己的PHP项目中实现高效且可定制的分页功能。

    PHP分页类代码

    本知识点将详细介绍如何使用PHP实现一个分页类,并结合给定的文件"page.php"和"dome.php"来阐述其工作原理。 首先,我们来看"page.php",这个文件通常会包含一个分页类的定义。分页类的设计通常包括以下几个关键...

    万能的php分页类实例代码

    本实例代码提供了一种“万能”的PHP分页类,它可以帮助开发者轻松实现各种场景下的分页需求。 首先,让我们了解分页的基本原理。分页通常通过计算总页数、当前页数、每页显示的记录数来实现。当用户点击页码或使用...

    php分页,代码很简单

    以下是实现PHP分页的基本步骤: 1. **计算总页数**:你需要知道数据库中的总记录数,然后根据每页显示的数据量来计算总页数。可以使用SQL的`COUNT()`函数来获取总记录数,例如: ```sql $sql = "SELECT COUNT(*) ...

    PHP的分页源代码 分页代码

    接下来我们对给定的PHP分页代码进行详细分析: 1. **引入数据库连接文件**: ```php include("conn.php");//数据库连接 ``` 2. **定义每页显示的记录数**: ```php $page_size=10;//每页显示的记录数 ``` 3...

    PHP内容分页.新闻内容分页代码,分页代码

    PHP内容分页,新闻内容分页代码,分页代码

    php封装的page分页类.zip

    "php封装的page分页类" 是一个专门用于处理这种需求的类库,它简化了PHP分页的实现过程,通过封装核心逻辑,使开发者能够快速、高效地实现分页功能。 首先,我们要理解分页的基本原理。在数据库查询中,如果一次性...

    一个很好的分页类php分页类

    标题中的"一个很好的分页类php分页类"暗示我们这里有一个专门用于实现分页功能的PHP类。这个类可能包含了一系列方法,用于计算总页数、生成页码链接以及处理用户请求的特定页面。 `page.class.php`可能是这个分页类...

    PHP简单漂亮的分页类(所有代码都有)

    本资源提供了一个简单且美观的PHP分页类,包含了完整的代码实现,包括数据库连接、PHP逻辑、CSS样式以及HTML结构。下面将详细解析这个分页类的工作原理及其各个部分。 首先,我们需要了解分页的基本概念。分页通常...

    仿google分页完整代码

    总的来说,这个“仿Google分页完整代码”提供了一个基本的PHP分页实现,可以帮助开发者快速实现类似Google那样简洁高效的分页功能。在实际应用中,开发者可能需要根据项目需求进行适当的修改和优化,例如增加缓存...

    php仿ZOL分页类代码

    【PHP仿ZOL分页类代码详解】 ...ZOL(中关村在线)是一个知名的科技资讯网站,其分页设计简洁实用。本篇文章将详细解析一个...总的来说,这是一个基础且实用的PHP分页实现,可以帮助开发者快速搭建具备分页功能的网页。

    php分页原理 万能分页源代码

    `index.php`可能是主页面,它可能包含了上述的PHP分页代码。`page.php`可能是一个用于处理分页请求的单独文件,接收`page`参数并返回相应的数据。`sql.sql`文件则可能包含了一些示例的SQL查询语句。 总结来说,PHP...

    一个PHP分页类的代码

    本篇文章将深入解析一个PHP分页类的代码,并讲解其核心概念和用法。 1. **类定义与属性** 分页类(`page`)定义了一些公共属性,如`page_name`(页面标识),`next_page`和`pre_page`(下一页和上一页的表示),...

    php分页类,功能很强大,直接调用类中的函数就可以

    本篇文章将详细讲解一个强大的PHP分页类,并介绍如何使用它来实现高效的分页功能。 标题提及的"php分页类"是一个专为PHP设计的工具,用于帮助开发者轻松实现数据的分页显示。这个类通常包含一系列的函数,能够计算...

    PHP MYSQL分页代码

    本资源"PHP MYSQL分页代码"提供了一个实用的解决方案,结合了PHP和MySQL两种技术来实现高效的数据分页功能。 首先,让我们深入了解PHP和MySQL在分页中的角色。PHP是一种广泛使用的服务器端脚本语言,常用于动态网站...

Global site tag (gtag.js) - Google Analytics