【问题标题】:CodeIgniter pagination url page numberCodeIgniter 分页 url 页码
【发布时间】:2012-04-27 22:10:50
【问题描述】:

据我所见,CodeIgniter 的分页计数错误,因为我的分页看起来像这样:

1 2 3 >

很好,问题出在每个分页号的url中,除了第一个:

分页中的数字 2 具有以下网址:

http://my-url.com/index.php/page/1

而数字3的网址如下:

http://my-url.com/index.php/page/2

所以,URL的数字每次减1。

我该如何解决这个问题,所以 url 中的页码将与分页中的页码相同?

我的分页配置:

$config['per_page']    = 5;
$config['base_url']    = site_url('page');
$config['uri_segment'] = 2;
$page = $this->uri->segment(2);
$total_rows_array = $this->records->get($config['per_page'], $page * $config['per_page']); // parameters: limit, offset.
$config['total_rows']  = count($total_rows_array);

【问题讨论】:

    标签: php codeigniter pagination


    【解决方案1】:

    遇到了同样的问题,我添加了这个配置行:

    $config['use_page_numbers'] = TRUE;
    

    并且它就像一个魅力!

    【讨论】:

    • 我添加了额外的代码以使上述工作像@Dale 提到的那样工作。
    【解决方案2】:

    您是否在分页配置中使用页码?

    CodeIgniters 分页的工作方式(默认情况下)是您设置要在代码中显示的记录数,CodeIgniter 计算出偏移量并将其附加到 URL。

    第 1 页(如果您愿意的话)末尾没有数字的原因是因为没有偏移量,第 2 页的偏移量为 1,因为它偏移了那么多记录。哇,这比我开始输入这个答案之前想象的要难解释!

    :编辑:

    另外,如果您在分页配置中使用页码,我想代码点火器正在获取 per_page 数量并将其乘以页码以获得记录的实际偏移量。

    第 2 页的实际偏移量实际上是 per_page (15) * page_number (1) = 15。

    【讨论】:

    • 从你说的看,我似乎做的一切都是正确的。我用配置代码更新了我的答案。
    • 对不起,我应该解释一下,这是 codeigniter 的工作方式,我认为如果你真的想让它显示“正确”的页码,它需要对 ci 的分页类进行某种形式的破解。
    • 我也不确定这个.. $config['uri_segment'] = $this->uri->segment(2);我认为这样做实际上是将 uri_segment 设置为 $this->uri->segment(2) 的值,它可能是 40987,这不起作用:)
    • 是的,我注意到并将$config['uri_segment'] 固定在右侧。现在我遇到了一个问题,所以如果我在空页(第一个)上,分页不起作用,它在一页显示 50 条记录中的 50 条,而不是每页 5 条记录......你能帮忙吗?那个?
    • 我正在获取具有以下限制的记录:$config['per_page'], $page * $config['per_page'] -> (LIMIT, OFFSET),请参阅我的更新答案。
    猜你喜欢
    • 1970-01-01
    • 2012-11-07
    • 2012-02-20
    • 2015-04-27
    • 2013-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多