2011-12-03 63 views
1
public function index($page = 0) { 
    $this->load->library('pagination'); 
    $conf = array(
     'total_rows' => 11, 
     'base_url' => 'localhost/admin/product/index', 
     'per_page' => 10, 
     'use_page_numbers' => false 
    ); 
    $this->pagination->initialize($conf); 
    $this->load->view('product/index'); 
} 

鉴于PHP CodeIgniter的分页链接打破

<?php echo $this->pagination->create_links(); ?> 

在它正常工作的第一页。当我点击页面2链接时,它只显示一个产品,这是正确的,但当前页面的分页链接仍然在第一页。假设这应该是第二页。

哪部分我做错了?

+0

好了,分页类是不加密的 – ajreal

+0

你是什么意思吗? –

+0

我意识到我的uri_segment是4.然而,默认的分页uri_segment是3.因此,只要这样做:$ conf ['uri_segment'] = 4; –

回答

0

那么,分页类在查询字符串中使用“per_page”。所以,你必须用10分这个数字(在你的情况下),并加1得到真正的页号,即:

localhost/product/index (page 1) 
localhost/product/index?per_page=10 (page 2) 
localhost/product/index?per_page=20 (page 3) 
... 
localhost/product/index?per_page={10n) (page n+1) 

这是有用的直接对数据库的限制子句中使用:

$this->db->limit(10, $this->input->get('per_page'))... 

我想这就是为什么CI选择这样做的....

+0

CI_Pagination对象 ( [BASE_URL] => HTTP://本地主机/项目/管理/产品/索引 [前缀] => [后缀] => [TOTAL_ROWS] => 11 [per_page] => 10 [NUM_LINKS] => 2 ... } 这是分页对象的配置,我仍然无法找出问题。 –

+0

我已经发现了这个问题,我上面已经评论了答案。谢谢您的回答无论如何 –

+0

这真是令人沮丧,没有意识到你在使用段而不是查询字符串,呵呵,Upvote的努力?) – landons