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

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: 麦当苗儿 <[email protected]> <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;

    }

}

时间: 2024-10-18 03:42:49

customPage.class.php可添加js事件的分页类的相关文章

JEPLUS平台添加JS事件的方式——JEPLUS软件快速开发平台

JEPLUS平台添加JS事件的方式 很多用户在使用平台的过程中有时候会涉及到比较复杂的功能,这些功能利用平台的配置有时候不能实现,这时候可能就需要来编写一些JS事件来完成功能需求的编写,可是很多客户不清楚平台的JS事件应该在什么地方加应该怎么加,今天这篇笔记就说一下平台添加JS事件的几种方式,大家根据自己的业务需求来进行自行添加编写. 一.脚本模板 平台的辅助程序里有很多关于平台的JS事件的一些设置,大家可以去辅助程序里进行查看,操作如图: 二.列表JS事件 打开目标功能的功能菜单的配置界面可以

特殊js事件

1:点击enter事件 $(document).keypress(function(e) { // 回车键事件 if(e.which == 13) { submitForm(); } }); 2:JQUERY表单ajax提交事件 1):添加js插件 2):添加js事件 function submitForm(){ $.ajax({ url:'${root}/doLogin', data:$('form').serialize(), dataType:'json', cache:false, ty

原生js事件的添加和删除

在IE浏览器中添加或删除事件用attachEvent.detachEvent.在其他标准浏览器中则用addEventListener.removeEventListener.下面的对事件的添加和删除做了封装.直接看代码吧! /** * @description 事件绑定,兼容各浏览器 * @param target * 事件触发对象 * @param type * 事件 * @param func * 事件处理函数 */ function bind(target, type, func) { i

js 页面无滚动条添加滚轮事件

当页面无滚动条时,滑动滚轮时window.onscroll事件不会相应,此时应该去添加滚轮事件 var MouseWheelHandler=function(e){ e.preventDefault(); e=window.event||e; var value; if(e.wheelDelta) value=e.wheelDelta; else if(e.detail) value=-e.detail; } var addMouseWheelHandler=function(){ if(doc

复习JS事件及DOM

[JS中的事件分类] 1.鼠标事件: click/dbclick/mousedown/mousemove/mouseout/mouseover/mouseup  2.键盘事件 keydown:键盘按下去触发 keypress:键盘按下并松开的瞬间 keyup:键盘抬起时触发 [注意事项:(了解)] ①执行顺序:keydown-keypress-keyup ②长按时,会循环不断执行keydown-keypress ③有keydown事件时,不一定有keyup事件(事件触发过程,鼠标移开,就不触发

js事件冒泡和事件委托

js所谓的事件冒泡就是子级元素的某个事件被触发,它的上级元素的该事件也被递归执行 html: 1 <ul class="clearfix" data-type="cityPick"> 2 <li class="active_sort_opts" data-id="0">全部</li> 3 <li data-id="88">纽约</li> 4 <

JS事件(事件冒泡和事件捕获)

事件流:描述的是在页面中接收事件的顺序 事件冒泡:由最具体的元素接收,然后逐级向上传播至最不具体的元素的节点(文档) 事件捕获:最不具体的节点先接收事件,而最具体的节点应该是最后接收事件 DOM中:用于处理指定和删除事件处理程序的操作addEventListener()和removeEventListener().他们都接收三个参数:要处理的事件名.作为事件处理程序的函数和布尔值(事件处理的时候)[true:事件捕获时;false:事件冒泡时] DOM中的事件对象: type属性 用于获取事件类

给网页中的元素添加onclick事件(引自锋利的jQuery)

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta name="generator" content="editplus" /> <title>给网页中的元素添加onclick事件</p></title> <script src="jquery-1.7.1

JS中的函数、Bom、DOM及JS事件

本期博主给大家带来JS的函数.Bom.DOM操作,以及JS各种常用的数据类型的相关知识,同时,这也是JavaScript极其重要的部分,博主将详细介绍各种属性的用法和方法. 一.JS中的函数 [函数的声明及调用] 1.函数声明的格式: function 函数名(参数1,参数2,参数3,--){//函数体 return 结果; } >>>函数的调用格式: 直接调用:函数调用的格式:函数名(参数一的值,参数二的值,--): 事件调用:事件名=函数名( ); 2.函数声明的几点强调: ①函数名