ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-Codeigniter分页显示结果数和页数

2019-11-11 11:31:41  阅读:301  来源: 互联网

标签:codeigniter-3 codeigniter pagination php


我正在使用Codeigniter 3,并且有一个简单的PHP应用程序.

使用分页类,我想在每个页面的顶部显示以下内容;

Showing x to y of z results

哪里;

x = start row
y - end row
z = total rows

`Showing 1 to 10 of 5213 results.`
`Showing 11 to 20 of 5213 results.`
`etc`

我可以使用$config [‘total_rows’]变量检索总行.虽然不确定其余部分.

我的items.php控制器看起来像这样;

    public function index() {
        $config['base_url'] = '/items/index';
        $config['use_page_numbers'] = FALSE; 
        $config['reuse_query_string'] = TRUE;
        $config['total_rows'] = $this->db->get('item')->num_rows();
        $config['per_page'] = 10;
        $config['num_links'] = 10;
        $config['full_tag_open'] = '<div><ul class="pagination">';
        $config['full_tag_close'] = '</ul></div><!--pagination-->';
        $config['first_link'] = '&laquo; First';
        $config['first_tag_open'] = '<li class="prev page">';
        $config['first_tag_close'] = '</li>';
        $config['last_link'] = 'Last &raquo;';
        $config['last_tag_open'] = '<li class="next page">';
        $config['last_tag_close'] = '</li>';
        $config['next_link'] = 'Next &rarr;';
        $config['next_tag_open'] = '<li class="next page">';
        $config['next_tag_close'] = '</li>';
        $config['prev_link'] = '&larr; Previous';
        $config['prev_tag_open'] = '<li class="prev page">';
        $config['prev_tag_close'] = '</li>';
        $config['cur_tag_open'] = '<li class="active"><a href="">';
        $config['cur_tag_close'] = '</a></li>';
        $config['num_tag_open'] = '<li class="page">';
        $config['num_tag_close'] = '</li>';
        $config['anchor_class'] = 'follow_link';
        $this->load->library('pagination');
        $this->pagination->initialize($config);

        $data = array(
        'items' => $this->items_model->itemList()
        );

        $this->load->view('item_list', $data);
    }

我的网址采用以下格式;

items/index    // displays results 1-10
items/index/10 // displays results 11-20
items/index/20 // displays results 21-30

任何帮助,将不胜感激.
谢谢

解决方法:

$data['z'] = $config['total_rows'];

$data['x'] = (int)$this->uri->segment(3) + 1;

if ($this->uri->segment(3) + $config['per_page'] > $config['total_rows']) {
    $data['y'] = $config['total_rows'];
} else {
    $data['y'] = (int)$this->uri->segment(3) + $config['per_page'];
}

另外,如果需要的页面在范围内,则可以在加载视图之前进行一次检查;如果不是,则应根据需要将访问者重定向到首页或最后一页.

标签:codeigniter-3,codeigniter,pagination,php
来源: https://codeday.me/bug/20191111/2019335.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有