customPage.class.php可添加js事件的分页类
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
<?php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN DO IT JUST THINK IT ] // +---------------------------------------------------------------------- // | Copyright (c) 2006-2014 http://thinkphp.cn All rights reserved. // +---------------------------------------------------------------------- // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 ) // +---------------------------------------------------------------------- // | Author: 麦当苗儿 <zuojiazi@vip.qq.com> <http://www.zjzit.cn> // +---------------------------------------------------------------------- namespace Think; class customPage{ public $firstRow ; // 起始行数 public $listRows ; // 列表每页显示行数 public $parameter ; // 分页跳转时要带的参数 public $totalRows ; // 总行数 public $totalPages ; // 分页总页面数 public $rollPage = 6; // 分页栏每页显示的页数 public $lastSuffix = true; // 最后一页是否显示总页数 private $p = 'p' ; //分页参数名 private $url = '' ; //当前链接URL private $nowPage = 1; // 分页显示定制 private $config = array ( 'header' => '<span class="rows">共 %TOTAL_ROW% 条记录</span>' , 'prev' => '上一页' , 'next' => '下一页' , 'first' => '1...' , 'last' => '...%TOTAL_PAGE%' , 'theme' => '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%' , ); /** * 架构函数 * @param array $totalRows 总的记录数 * @param array $listRows 每页显示记录数 * @param array $parameter 分页跳转的参数 */ public function __construct( $totalRows , $listRows =20, $parameter = array ()) { C( 'VAR_PAGE' ) && $this ->p = C( 'VAR_PAGE' ); //设置分页参数名称 /* 基础设置 */ $this ->totalRows = $totalRows ; //设置总记录数 $this ->listRows = $listRows ; //设置每页显示行数 $this ->parameter = empty ( $parameter ) ? $_GET : $parameter ; $this ->nowPage = empty ( $_GET [ $this ->p]) ? 1 : intval ( $_GET [ $this ->p]); $this ->totalPages = ceil ( $this ->totalRows / $this ->listRows); //总页数 if ( $this ->nowPage> $this ->totalPages) { $this ->nowPage = $this ->totalPages ; } $this ->nowPage = $this ->nowPage>0 ? $this ->nowPage : 1; $this ->firstRow = $this ->listRows * ( $this ->nowPage - 1); } /** * 定制分页链接设置 * @param string $name 设置名称 * @param string $value 设置值 */ public function setConfig( $name , $value ) { if (isset( $this ->config[ $name ])) { $this ->config[ $name ] = $value ; } } /** * 生成链接URL * @param integer $page 页码 * @return string */ private function url( $page ){ return str_replace (urlencode( '[PAGE]' ), $page , $this ->url); } /** * 组装分页链接 * @return string */ public function show() { if (0 == $this ->totalRows) return '' ; /* 生成URL */ $this ->parameter[ $this ->p] = '[PAGE]' ; $this ->url = U(ACTION_NAME, $this ->parameter); /* 计算分页信息 */ if (! empty ( $this ->totalPages) && $this ->nowPage > $this ->totalPages) { $this ->nowPage = $this ->totalPages; } /* 计算分页临时变量 */ $now_cool_page = $this ->rollPage/2; $now_cool_page_ceil = ceil ( $now_cool_page ); $this ->lastSuffix && $this ->config[ 'last' ] = $this ->totalPages; //上一页 $up_row = $this ->nowPage - 1; $up_page = $up_row > 0 ? '<a class="shang" id="' . $up_row . '"href="javascript:;">上一页</a>' : '' ; //下一页 $down_row = $this ->nowPage + 1; $down_page = ( $down_row <= $this ->totalPages) ? '<a class="xia" id="' . $down_row . '" href="javascript:;">下一页</a>' : '' ; //第一页 $the_first = '' ; if ( $this ->totalPages > $this ->rollPage && ( $this ->nowPage - $now_cool_page ) >= 1){ $the_first = '<a class="first" id="1" href="javascript:;">第一页</a>' ; } //最后一页 $the_end = '' ; //if($this->totalPages > $this->rollPage && ($this->nowPage + $now_cool_page) < $this->totalPages){ if ( $this ->totalPages > $this ->rollPage && ( $this ->nowPage + $now_cool_page ) < $this ->totalPages){ $the_end = '<a class="end" id="' . $this ->totalRows. '" href="javascript:;">最后一页</a>' ; } for ( $i = 1; $i <= $this ->rollPage; $i ++){ if (( $this ->nowPage - $now_cool_page ) <= 0 ){ $page = $i ; } elseif (( $this ->nowPage + $now_cool_page - 1) >= $this ->totalPages){ $page = $this ->totalPages - $this ->rollPage + $i ; } else { $page = $this ->nowPage - $now_cool_page_ceil + $i ; } if ( $page > 0 && $page != $this ->nowPage){ if ( $page <= $this ->totalPages){ $link_page .= ( '<li id="' . $page . '">' . $page . '</li>' ); } else { break ; } } else { if ( $page > 0 && $this ->totalPages != 1){ $link_page .= ( '<li id="now" id="' . $page . '" class="current">' . $page . '</li>' ); } } } if (! empty ( $link_page )) $link_page = '<ul id="list">' . $link_page . '</ul>' ; //替换分页内容 $page_str = str_replace ( array ( '%HEADER%' , '%NOW_PAGE%' , '%UP_PAGE%' , '%DOWN_PAGE%' , '%FIRST%' , '%LINK_PAGE%' , '%END%' , '%TOTAL_ROW%' , '%TOTAL_PAGE%' ), array ( $this ->config[ 'header' ], $this ->nowPage, $up_page , $down_page , $the_first , $link_page , $the_end , $this ->totalRows, $this ->totalPages), $this ->config[ 'theme' ]); $page_str = trim( $page_str ); if (! empty ( $page_str )) $page_str .= '<p></p><input value="" type="text"><a href="javascript:;" id="go" class="go">跳转</a>' ; return $page_str ; } } |
customPage.class.php可添加js事件的分页类的更多相关文章
- A标签添加JS事件,不跳转不刷新办法
<a href="javascript:;" id="submit-btn" class="submit-btn" title=&qu ...
- JS事件冒泡机制和兼容性添加事件
本篇文章主要来讲讲 事件的冒泡机制 和 添加事件的几种方法. 一. JS的时间传递顺序: 捕获阶段 -> 目标阶段 -> 冒泡阶段 捕获阶段是指从父层往子层找.比如 <body> ...
- 特殊js事件
1:点击enter事件 $(document).keypress(function(e) { // 回车键事件 if(e.which == 13) { submitForm(); } }); 2:JQ ...
- 文字添加响应事件,js动态加载CSS, js弹出DIV
文字添加响应事件,js动态加载CSS, js弹出DIV <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...
- js 页面无滚动条添加滚轮事件
当页面无滚动条时,滑动滚轮时window.onscroll事件不会相应,此时应该去添加滚轮事件 var MouseWheelHandler=function(e){ e.preventDefault( ...
- Repeater,ItemDataBound事件,获取绑定列的值,给指定列添加js方法
protected void rp_bf_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ...
- JS 事件添加onclick写法注意。
自定义函数添加onclick事件写法注意. 错误写法:element.onclick = addclass(className); 正确写法:element.onclick = function(){ ...
- JS事件——添加、移除事件
element.addEventListener(event, function, useCapture) 方法用于向指定元素添加事件句柄. event: 必须.字符串,指定事件名.注意: 例 使 ...
- js事件技巧方法整合
window.resizeTo(800,600); //js设置浏览器窗口尺寸 window.open (function(){ resizeTo(640,480);//设置浏览器窗口尺寸 moveT ...
随机推荐
- python日记---day1
Life is short,Test in python 一.输入输出 1.用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world' print('h ...
- MongoDB - Introduction to MongoDB, Databases and Collections
MongoDB stores BSON documents, i.e. data records, in collections; the collections in databases. Data ...
- input新类型详解
http://www.webhek.com/post/html5-input-type.html
- zabbix lld使用trapper方式(zabbix_sender)
自动发现脚本文件输出格式: { "data": [ { "{#BIND_PERF}": "BIND INCOMING QUERY" }, { ...
- oracle05
1. 数据处理 说完了所有的查询,下面说说增.删.改. 1.1. Update 在plsql Developer工具中,加上rowid可以更改数据. 使用工具进行更新数据的操作 在工具中更新数据方式一 ...
- 【SVN】centos环境下搭建SVN服务器
1.安装SVN,有些linux发行版自带SVN,可以用下面方法检测是否安装SVN. svn --version 如果 Subversion 客户端没有安装,命令将报告svn命令找不到的错误. 我们可以 ...
- jQuery入门——(二)
0.基本知识 $与jQuery等价,$.fun代表jQuery的全局方法. jQuery必须首先导入JQuery库, jQuery的事件都不带on,例如 $("#btn").cli ...
- mysql备份的 三种方式【转】
备份的本质就是将数据集另存一个副本,但是原数据会不停的发生变化,所以利用备份只能回复到数据变化之前的数据.那变化之后的呢?所以制定一个好的备份策略很重要. 一.备份的目的 做灾难恢复:对损坏的数据进行 ...
- c++语言知识点汇总
c++ primer version-5 的整理 section 1: 内置类型和自定义类型: main函数的返回值:指示状态.0:成功:1:系统定义. unix和win系统中,执行完程序可以使用ec ...
- 表格中border-collapse属性
页面制作中最头痛的,表格的边框算是其一了.一不小心就会出现双重线 border-collapse属性 很好的解决了纠结了很久的问题 .table{border: 1px solid #ccc;bord ...