关于ThinkPHP2.0 中的Page.class.php

TP中的分页类有一个BUG:假如说现在有两页的记录,我在每条记录后都做了逻辑删除按钮,当我一条条把第二页的记录删完后,并不会自动跳回第一页。这就说明这个分页类有问题。于是我把从分页类中得到的参数一个个输出看是否合理。这样之后发现 $firstRow 是5而不是0(每页显示条数$pageSize是5),这直接导致了去数据库中获取记录的偏移量出现了偏差。然后我就要去分页类中找为什么它会是5。
    结果发现,当前页在构造方法里有一个初始值,由我们点击的页数 1 2 3...(也就是$_GET['p'])来决定。也就是这个当前页的数值决定了$firstRow的值。在构造方法外,show()这个方法里才根据总页数对当前页进行了限制,但在这个限制之后,$firstRow的值没有再发生变化,导致了结果的错误。所以要进行修改!!!!

    将show()方法中的如下代码剪切到构造方法__construct()里,而且要在给firstRow赋值的上端:

        $this->totalPages = ceil($this->totalRows / $this->listRows); //总页数
        if(!empty($this->totalPages) && $this->nowPage > $this->totalPages) {
            $this->nowPage = $this->totalPages;
        }

    这样,在尾页把所有数据删除不再显示后,能够自动跳回到上一页。

 

转载于:https://my.oschina.net/u/2965359/blog/760288

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值