Codeigniter - 分页 - 显示的数字链接

时间:2013-05-09 07:29:33

标签: php codeigniter pagination

我已使用以下配置实现了分页

$config['page_query_string'] = TRUE;
$config['base_url'] = base_url()."jobs/?job=".$_GET['job']."&location=".$_GET['location'];
$config['total_rows'] = $totalCount;
$config['per_page'] = 10; 
$config['num_links']=15;
$this->pagination->initialize($config); 

这个分页很好,数字显示从1到16.现在当我点击第16页时,它会显示1-32之间的数字,依此类推。 因此,它增加了页面链接的数量,而不是从队列的开始删除。

我在哪里错了?

2 个答案:

答案 0 :(得分:3)

我也面临同样的问题。我不认为你的代码中有任何错误。我认为它的codeigniter分页类问题。

我通过更改systems / libraries / Pagination.php文件解决了这个问题。

$start  = (($this->cur_page - $this->num_links) > 0) ? $this->cur_page - ($this->num_links - 1) : 1;

$end    = (($this->cur_page + $this->num_links) < $num_pages) ? $this->cur_page + $this->num_links : $num_pages;

以上两行注释并添加以下行。

$start  = ($this->cur_page >= $this->num_links) ? $this->cur_page - (((int)($this->num_links/2))-1) : 1;

$end    = ($this->cur_page >= $this->num_links) ? $this->cur_page + (int)($this->num_links/2) :$this->num_links;

if($end > $num_pages){
    $end = $num_pages;
}

首先它会告诉你

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

当您点击15页链接时,它会显示

8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

当您点击16页链接时,它会显示

9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

答案 1 :(得分:-1)

那里没有错,我只建议你:

$config['num_links']=15;

设置您想要显示的链接数,如果它们是15,您将看到例如:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 

then -> 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

依旧......