【问题标题】:Why Codeigniter is showing same data on every page using pagination?为什么 Codeigniter 使用分页在每个页面上显示相同的数据?
【发布时间】:2018-09-08 09:47:46
【问题描述】:

Codeigniter 使用分页在每个页面上显示相同的数据。我认为URL 存在问题,因为它无法从 url 获取 3rd uri 段。

http://127.0.0.1/hmvc/business_list/?p=2

而我使用的代码是……

public function index()
{



    $query = $this->db->query('SELECT * FROM categories');
    $pagination_limit = '10';

    $config = array();
    $config['base_url'] = base_url().'business_list/';

    $config['display_pages'] = true;
    $config['first_link'] = 'First';

    $config['total_rows'] = $query->num_rows();
    $config['per_page'] = $pagination_limit;
    $config['uri_segment'] = 3;

    $config['full_tag_open'] = "<ul class='pagination pagination-right margin-none'>";
    $config['full_tag_close'] = '</ul>';
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';
    $config['cur_tag_open'] = "<li class='disabled'><li class='active'><a href='#'>";
    $config['cur_tag_close'] = "<span class='sr-only'></span></a></li>";
    $config['next_tag_open'] = '<li>';
    $config['next_tagl_close'] = '</li>';
    $config['prev_tag_open'] = '<li>';
    $config['prev_tagl_close'] = '</li>';
    $config['first_tag_open'] = '<li>';
    $config['first_tagl_close'] = '</li>';
    $config['last_tag_open'] = '<li>';
    $config['last_tagl_close'] = '</li>';

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

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;

    $data['results'] = $this->Business_model->fetch_comments_data($config['per_page'], $page);

    $data['links'] = $this->pagination->create_links();

     $data['title'] = "Business List";

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

}

请帮忙。

【问题讨论】:

    标签: codeigniter


    【解决方案1】:

    你需要改变这个:

    $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
    

    $page = ($this->input->get('p') ? $this->input->get('p') : 0);
    

    我认为 Codeigniter URI Segment 在您的情况下不起作用,因为如果您的网址是这样的

    http://127.0.0.1/hmvc/business_list/page/2
    

    那么第一段是business_list,第二段是page,但是您使用查询字符串,所以需要更改

    【讨论】:

    【解决方案2】:

    花点时间了解一下你在那里做什么。

    $query = $this->db->query('SELECT * FROM categories');
    

    您似乎没有定义 LIMITOFFSET

    我为你找到了一个关于pagination with codeigniter 的好例子。

    【讨论】:

    • 在代码的最后一行 4 行 $data['results'] = $this->Business_model->fetch_cmets_data($config['per_page'], $page);
    • 我认为这里的问题是 URL 形成的。看看
    猜你喜欢
    • 2014-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多