Codeigniter中的分页创建奇怪的链接

时间:2016-02-15 12:06:59

标签: php codeigniter

我正在使用Codeigniter进行分页系统,但有些东西无法正常工作。

我的搜索结果共有5个结果。

如果我每页放1个项目,则会将链接创建为

example.com/suppliers/   Page 1
example.com/suppliers/1   Page 2
example.com/suppliers/2   Page 3
example.com/suppliers/3   Page 4
example.com/suppliers/4   Page 5

这是正确的

但是,如果我每页放2个项目,则显示为

example.com/suppliers/   Page 1
example.com/suppliers/2   Page 2
example.com/suppliers/4   Page 3

如果我每页放3个项目,则显示为

example.com/suppliers/   Page 1
example.com/suppliers/3   Page 2

因此它跳跃页面的数量级相当于每页的结果。

这是用于生成分页的代码:

//Create the pagination links
$config['base_url'] = base_url().'/suppliers';
$config['total_rows'] = $this->data['count_suppliers'];
$config['per_page'] = RESULTS_IN_SEARCH;    
$config['full_tag_open'] = '<ul class="pagination">';
$config['full_tag_close'] = '</ul>';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['prev_link'] = '<i class="fa fa-chevron-left"></i>';
$config['next_tag_open'] = '<li class="next">';
$config['next_tag_close'] = '</li>';
$config['next_link'] = '<i class="fa fa-chevron-right"></i>';
$config['cur_tag_open'] = '<li class="active"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close']='</li>';

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

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

在附件中,您可以看到结果。

Pagination problem

已解决:添加$ config [&#39; use_page_numbers&#39;] = TRUE;到分页配置和对数据库进行查询时减去1,这样第1页搜索LIMIT 0,3而不是LIMIT 3,3

4 个答案:

答案 0 :(得分:1)

我认为问题来自base_url()。您可以使用site_url()代替base_url();,因此请查看差异here

Base_url - 这是包含您的分页的控制器类/函数的完整URL。在上面的例子中,它指向一个名为“Test”的控制器和一个名为“page”的函数。请注意,如果您需要不同的结构,可以re-route your URI

$this->load->library('pagination');

$config['base_url'] = base_url().'/suppliers';
$config['total_rows'] = 200;
$config['per_page'] = 20;

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

echo $this->pagination->create_links();

请详细了解分页here

答案 1 :(得分:0)

如果

,您必须将页码的控制器功能设置为0
public function show_entries($page = 0) {          
    ----
    $config['use_page_numbers'] = TRUE;
    $per_page=2; //what ever
    $config["per_page"] = $per_page;
    -----
}

答案 2 :(得分:0)

尝试使用以下代码: -

$config['base_url'] = site_url('suppliers/' . $id);

如果不能正常工作,请同时添加以下代码: -

$config['uri_segment'] = 4;
$page = ($this->uri->segment($config['uri_segment'])) ? $this->uri->segment($config['uri_segment']) : 0;
$data['topics_array'] = $this->forum->get_topics($id, $config['per_page'], $page);
$data['pagination'] = $this->pagination->create_links();

另请参阅此link

答案 3 :(得分:0)

您可以尝试在数组配置键flac中添加获取号码页面,但不要在网址中获取开始数字项目。