分页类,带省略号

<?php
/*************************************************************************
php easy :: pagination scripts set - DEMO
==========================================================================
Author:      php easy code, www.phpeasycode.com
Web Site:    http://www.phpeasycode.com
Contact:     [email protected]
*************************************************************************/
$page   = intval($_GET[‘page‘]);
$tpages = ($_GET[‘tpages‘]) ? intval($_GET[‘tpages‘]) : 20; // 20 by default
$adjacents  = intval($_GET[‘adjacents‘]);

if($page<=0)  $page  = 1;
if($adjacents<=0) $adjacents = 4;

$reload = $_SERVER[‘PHP_SELF‘] . "?tpages=" . $tpages . "&amp;adjacents=" . $adjacents;
?>
<html>
<head>
<title>Pagination DEMO</title>
<link rel="stylesheet" type="text/css" href="paginate.css">
</head>
<body>

<div align="center">
<p><b>Pagination DEMO</b></p>
<form action="<?=$_SERVER[‘PHP_SELF‘];?>" method="get">
<table cellspacing="0" cellpadding="4">
<tr><th>Specify values for pagination test:</th></tr>
<tr><td>total pages: <input type="text" name="tpages" size="2" value="<?=$tpages;?>">,
adjacents: <input type="text" name="adjacents" size="2" value="<?=$adjacents;?>">
<input type="submit" value="Go"></td></tr>
</table>
</form>
<br>
<p><b>View Results for page <?=$page;?> of <?=$tpages;?> (adjacent pages: <?=$adjacents;?>)</b></p>
<p>paginate_one:</p>
<?php
include("pagination1.php");
echo paginate_one($reload, $page, $tpages);
?>
<br>
<p>paginate_two:</p>
<?php
include("pagination2.php");
echo paginate_two($reload, $page, $tpages, $adjacents);
?>
<br>
<p>paginate_three:</p>
<?php
include("pagination3.php");
echo paginate_three($reload, $page, $tpages, $adjacents);

?>
</div>

</body>
</html>

<?php
/*************************************************************************
php easy :: pagination scripts set - Version Three
==========================================================================
Author:      php easy code, www.phpeasycode.com
Web Site:    http://www.phpeasycode.com
Contact:     [email protected]
*************************************************************************/
function paginate_three($reload, $page, $tpages, $adjacents) {

	$prevlabel = "&lsaquo; Prev";
	$nextlabel = "Next &rsaquo;";

	$out = "<div class=\"pagin\">\n";

	// previous
	if($page==1) {
		$out.= "<span>" . $prevlabel . "</span>\n";
	}
	elseif($page==2) {
		$out.= "<a href=\"" . $reload . "\">" . $prevlabel . "</a>\n";
	}
	else {
		$out.= "<a href=\"" . $reload . "&amp;page=" . ($page-1) . "\">" . $prevlabel . "</a>\n";
	}

	// first
	if($page>($adjacents+1)) {
		$out.= "<a href=\"" . $reload . "\">1</a>\n";
	}

	// interval
	if($page>($adjacents+2)) {
		$out.= "...\n";
	}

	// pages
	$pmin = ($page>$adjacents) ? ($page-$adjacents) : 1;
	$pmax = ($page<($tpages-$adjacents)) ? ($page+$adjacents) : $tpages;
	for($i=$pmin; $i<=$pmax; $i++) {
		if($i==$page) {
			$out.= "<span class=\"current\">" . $i . "</span>\n";
		}
		elseif($i==1) {
			$out.= "<a href=\"" . $reload . "\">" . $i . "</a>\n";
		}
		else {
			$out.= "<a href=\"" . $reload . "&amp;page=" . $i . "\">" . $i . "</a>\n";
		}
	}

	// interval
	if($page<($tpages-$adjacents-1)) {
		$out.= "...\n";
	}

	// last
	if($page<($tpages-$adjacents)) {
		$out.= "<a href=\"" . $reload . "&amp;page=" . $tpages . "\">" . $tpages . "</a>\n";
	}

	// next
	if($page<$tpages) {
		$out.= "<a href=\"" . $reload . "&amp;page=" . ($page+1) . "\">" . $nextlabel . "</a>\n";
	}
	else {
		$out.= "<span>" . $nextlabel . "</span>\n";
	}

	$out.= "</div>";

	return $out;
}
?>

<?php

/*

Place code to connect to your DB here.

*/

include(‘config.php‘); // include your code to connect to DB.

$tbl_name=""; //your table name

// How many adjacent pages should be shown on each side?

$adjacents = 3;

/*

First get total number of rows in data table.

If you have a WHERE clause in your query, make sure you mirror it here.

*/

$query = "SELECT COUNT(*) as num FROM $tbl_name";

$total_pages = mysql_fetch_array(mysql_query($query));

$total_pages = $total_pages[num];

/* Setup vars for query. */

$targetpage = "filename.php"; //your file name  (the name of this file)

$limit = 2; //how many items to show per page

$page = $_GET[‘page‘];

if($page)

$start = ($page - 1) * $limit; //first item to display on this page

else

$start = 0; //if no page var is given, set start to 0

/* Get data. */

$sql = "SELECT column_name FROM $tbl_name LIMIT $start, $limit";

$result = mysql_query($sql);

/* Setup page vars for display. */

if ($page == 0) $page = 1; //if no page var is given, default to 1.

$prev = $page - 1; //previous page is page - 1

$next = $page + 1; //next page is page + 1

$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.

$lpm1 = $lastpage - 1; //last page minus 1

/*

Now we apply our rules and draw the pagination object.

We‘re actually saving the code to a variable in case we want to draw it more than once.

*/

$pagination = "";

if($lastpage > 1)

{

$pagination .= "<div class=\"pagination\">";

//previous button

if ($page > 1)

$pagination.= "<a href=\"$targetpage?page=$prev\">? previous</a>";

else

$pagination.= "<span class=\"disabled\">? previous</span>";

//pages

if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up

{

for ($counter = 1; $counter <= $lastpage; $counter++)

{

if ($counter == $page)

$pagination.= "<span class=\"current\">$counter</span>";

else

$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";

}

}

elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some

{

//close to beginning; only hide later pages

if($page < 1 + ($adjacents * 2))

{

for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)

{

if ($counter == $page)

$pagination.= "<span class=\"current\">$counter</span>";

else

$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";

}

$pagination.= "...";

$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";

$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";

}

//in middle; hide some front and some back

elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))

{

$pagination.= "<a href=\"$targetpage?page=1\">1</a>";

$pagination.= "<a href=\"$targetpage?page=2\">2</a>";

$pagination.= "...";

for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)

{

if ($counter == $page)

$pagination.= "<span class=\"current\">$counter</span>";

else

$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";

}

$pagination.= "...";

$pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";

$pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";

}

//close to end; only hide early pages

else

{

$pagination.= "<a href=\"$targetpage?page=1\">1</a>";

$pagination.= "<a href=\"$targetpage?page=2\">2</a>";

$pagination.= "...";

for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)

{

if ($counter == $page)

$pagination.= "<span class=\"current\">$counter</span>";

else

$pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";

}

}

}

//next button

if ($page < $counter - 1)

$pagination.= "<a href=\"$targetpage?page=$next\">next ?</a>";

else

$pagination.= "<span class=\"disabled\">next ?</span>";

$pagination.= "</div>\n";

}

?>

<?php

while($row = mysql_fetch_array($result))

{

// Your while loop here

}

?>

<?=$pagination?>

时间: 2024-08-07 06:16:01

分页类,带省略号的相关文章

Yii2中自带分页类实现分页

转 http://www.cnblogs.com/gyrgyr/p/5249392.html 1.首先写控制器层 先引用pagination类 use yii\data\Pagination; 写自己的方法: function actionFenye(){        $data = Field::find();  //Field为model层,在控制器刚开始use了field这个model,这儿可以直接写Field,开头大小写都可以,为了规范,我写的是大写        $pages = n

防淘宝带省略号的AJAX分页

<?php /**  * 防淘宝带省略号的AJAX分页  * @param date   * @author hany  */ class AjaxPage { private $total; //数据表中总记录数 private $listRows; //每页显示行数 private $limit;  //分页参数 private $uri;   private $pageNum; //总页数 private $config=array('header'=>"个记录", 

thinkphp自带分页类

thinkphp自带分页使用案例: $Data = M('Data'); // 实例化Data数据对象  date 是你的表名     import('ORG.Util.Page');// 导入分页类     $count = $Data->where($map)->count();// 查询满足要求的总记录数 $map表示查询条件     $Page = new Page($count);// 实例化分页类 传入总记录数     $show = $Page->show();// 分页显

Angular+Bootstrap实现分页(带省略号)

前言 前几天用Angularjs写一个后台管理界面时,需要写分页,自己懒得写于是想在网上搜索一个带省略号的插件,竟然没找到,那没办法就自己写吧 效果图 话不多说,直接上代码 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <link rel="stylesheet" href=

用angularJs实现分页功能,不带省略号。

angularJs 的分页重点体现在对 过滤器 的使用.这个过滤器也并不复杂. 首先上 html 代码: 1 <!DOCTYPE html> 2 <html ng-app="demoApp"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width">

thinkphp简洁、美观、靠谱的分页类

废话不多说先上图预览下:即本博客的分页: 这个分页类是在thinkphp框架内置的分页类的基础上修改而来: 原分页类的一些设计,在实际运用中感觉不是很方便: 1:只有一页内容时不显示分页: 2:原分页类在当前页是第一页和最后一页的时候,不显示第一页和最后一页的按钮: 3:分页数比较少时不显示首页和末页按钮: 4:包裹分页内容的父级div没有class: 针对以上问题逐一进行了修改成如下: 1:如果没有数据不显示分页,如果有一页及以上内容即显示分页: 2:默认就显示第一页和最后一页按钮,但是在当前

thinkphp 分页类介绍

thinkphp 中的分页类在我看来还是很强大的,使用起来也是很方便的.只要传总的条数,和每页显示的条数,还有样式配置数组,你就可以轻松显示分页,而且可以方便的调整前台页数代码的样式. 下面介绍一下一些配置参数: public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 public $parameter; // 分页跳转时要带的参数 public $totalRows; // 总行数 public $totalPages; // 分页总页面

ThinkPHP分页用异步来做,玩转分页类!

具体为什么用异步来做分页我就不多说了! 用异步来做分页,主要还是看分页类怎么玩! 方便管理,还是把Ajax分页作为一个工具来使用: 同样新建工具类: 多次尝试,最终修改好的分页类是这样的:(我自己使用还是比较爽的) <?php namespace Components; class AjaxPage { public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 public $parameter; // 分页跳转时要带的参数 public $

PHP+jQuery 实现可选择url和ajax方式的分页类

1 /* 2 ******* 环境:Apache2.2.8 ( 2.2.17 ) + PHP5.2.6 ( 5.3.3 ) + MySQL5.0.51b ( 5.5.8 ) + jQuery-1.8.3.min.js + Smarty 3.1.18 ******* 3 ******* Date:2014-10-11 4 ******* Author:小dee5 ******* Blog:http://www.cnblogs.com/dee0912/6 */ 做了一个分页的功能模块,主要的文件包括

customPage.class.php可添加js事件的分页类

用于ajax动态加载数据的分页类,分页事件可以动态添加,去除了a链接中的href地址. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72