CodeIgniter分页:不创建第一页的链接

时间:2012-06-01 16:48:29

标签: php codeigniter activerecord pagination

我的分页问题仍然存在;

我只是用简单的东西做分页:

        $config['base_url'] = site_url('admin/index/page/');
        $this->load->database();
        $config['total_rows'] = $this->db->count_all('sms');
        $config['per_page'] = 20;
        $offset = $this->uri->segment(4, 0);
        $this->pagination->initialize($config)

我的视图页面有查看分页的命令:

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

超过20行后,分页开始分页,但html输出显示如下:

1 2 3

在视图中,第一页编号1没有链接跳转到下一页,页面编号1上没有链接。只是它强大。

我的第二个问题是:我只有30个记录,但CI分页创建第3页,其中有空行!

我不确定为什么有些Class(特别是分页给用户带来了太多麻烦?)如果我需要支付一些东西(可能是隐藏的许可证?)以避免麻烦而不是使用简单的分页类而不会浪费那么多时间在互联网上搜索问题,我已经准备好了!

4 个答案:

答案 0 :(得分:12)

由于这个分页问题,​​我非常生气,我正在研究分页库的源代码,我看到了这个 - var $ uri_segment = 3;在您的情况下,分页库的默认值使用第3个uri段,在我的情况下,我们想要使用第4个uri段。为了满足我们的需求,请更改此代码:

    $config['base_url'] = site_url('admin/index/page/');
    $this->load->database();
    $config['total_rows'] = $this->db->count_all('sms');
    $config['per_page'] = 20;
    $offset = $this->uri->segment(4, 0);
    $this->pagination->initialize($config)


   TO


    $config['base_url'] = site_url('admin/index/page/');
    $this->load->database();
    $config['total_rows'] = $this->db->count_all('sms');
    $config['per_page'] = 20;
    $offset = $this->uri->segment(4, 0);

    $config['uri_segment'] = 4;      // add this line to override the default

    $this->pagination->initialize($config)

请回复此处,如果这样可以解决您的问题,或者问题仍然存在,那么我可以提供帮助:)

Nwei这不在分页类文档中。我希望这会被添加到文档中,因为我看到许多开发人员在分页课上遇到了困难。

答案 1 :(得分:1)

如果您熟悉分页的工作原理,那么您应该知道分页不会为当前页面添加链接标记。因此,我不确定您对“分页类不创建1页链接”的要求。

另外,我没有看到在分页功能中使用偏移的位置。看起来你设置它但你不使用它。这可能导致不正确的分页结果,我认为这是为什么你获得比预期更多的分页链接。

    $offset = $this->uri->segment(4, 0);
    $this->pagination->initialize($config);

更改“当前页面”链接标记的一种方法是“自定义”当前页面“链接”

$config['cur_tag_open'] = '<a href="#">';

“当前”链接的开始标记。

$config['cur_tag_close'] = '</a>';

“当前”链接的结束标记。

另一个选择是深入分页类并删除它没有添加当前页面链接的功能。

真的,如果你在当前页面上,它没有添加任何好处链接到你已经在的同一页面,我假设是当前页面没有链接的原因。如果你去了第2页,那么2将被禁用。希望这是有道理的。

答案 2 :(得分:0)

不,没有必要支付任何费用...... CI分页工作完美..你看到这个图书馆http://codeigniter.com/user_guide/libraries/pagination.html

确保您的$config['total_rows'] = $this->db->count_all('sms');此代码工作正常并提供正确的行数,我还建议您使用.. $config['uri_segment'] = 3;$config['uri_segment'] = 4; depend on your uri而不是{{1} }}

当然,这些改变对你有用......

答案 3 :(得分:0)

当使用段号4时,我在分页时也遇到了同样的问题。我使用段号3来解决它。这也是我的问题,因为我真的需要使用段号4但是好吧它有bug。我希望这可以尽快解决。或者如果你现在真的需要解决这个问题,你可以尝试分叉分页类的源代码。