【问题标题】:How to echo page number with codeigniter pagination library?如何使用 codeigniter 分页库回显页码?
【发布时间】:2012-03-11 16:30:31
【问题描述】:

我正在使用 codeigniter 分页库来分页我的搜索结果。我正在使用限制和偏移来生成结果。

我想知道除了在分页链接之外,如何回显用户当前正在查看的页面编号。

例如;

您目前正在查看第 X 页,共 Y 个结果。

这怎么可能??

【问题讨论】:

    标签: codeigniter pagination numbers echo


    【解决方案1】:

    这也给当前页面编号

    $currentPage = floor(($this->uri->segment(n)/$config['per_page']) + 1);   
    

    其中n是段

    echo "Current Page:".$currentPage;
    

    【讨论】:

    • 它说,消息:使用未定义的常量 n - 假定为“n”:/
    • hello @deathlock 代替 'n' 你需要传递段号,用你的段号替换 'n'
    • @DevendraVerma 对不起,我不是真正的程序员,但什么是“段”?试图谷歌“PHP段”,但没有找到一个很好的解释
    【解决方案2】:

    您可以扩展分页类 (system/libraries/Pagination.php)。

    创建一个名为 MY_Pagination.php 的文件并将其放入 application/libraries/

    将此代码添加到扩展分页类;

    class MY_Pagination extends CI_Pagination {
    
        public function __construct() {
            parent::__construct();
        }
    
        public function current_place() {
            return 'You are currently viewing page '.$this->cur_page.' out of '.ceil(($this->total_rows/$this->per_page)). 'results';
        }
    }
    

    不要忘记确保在 config.php 中将类扩展前缀正确设置为 MY_(大约第 109 行)

    然后你可以在你的控制器中访问它;

    $current = $this->pagination->current_place();
    

    您可以将其传递到您的视图中。

    【讨论】:

    • 永远不要破解核心库..你应该只扩展它们
    • @Henesnarfel - 已更改答案以删除“黑客”评论。现在显示通过扩展原生库来实现,
    【解决方案3】:

    取决于您如何设置偏移量。我们的设置是每页的偏移量。所以我们的默认值是每页 10 个。因此,对于第一页,偏移量为 0。对于第二页,偏移量为 10,依此类推。因此,对于我来说,要获取当前页面,我会将偏移量除以当前限制加 1。所以($cur_page/$per_page)+1 将获取当前页面。

    【讨论】:

    • 您介意详细说明吗?因为我试过($cur_page/$per_page)+1 但它不起作用
    猜你喜欢
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多