如何使用 codeigniter 分页库回显页码?

Posted

技术标签:

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

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

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

例如;

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

这怎么可能??

【问题讨论】:

【参考方案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 但它不起作用

以上是关于如何使用 codeigniter 分页库回显页码?的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter 分页链接按降序/倒序排列?

如何在codeigniter中的单个函数中运行多个分页

CodeIgniter 分页 url 页码

CodeIgniter 计数太慢 - 分页

用于排序、分页和过滤的 CodeIgniter 优雅库 [关闭]

如何使用分页库在回收站视图中添加日期分隔符?