我需要使用get参数进行分页。在方法中,我编写了如下代码。
public function index($offset = 0) {
$data['title_for_layout'] = 'Apartment Advertisement - Search';
// Pagination config
$this->load->library('pagination');
$pagination['enable_query_strings'] = true;
$pagination['page_query_string'] = true;
$pagination['allow_get_array'] = true;
$pagination['first_url'] = base_url('search');
$pagination['base_url'] = $config['first_url'];
$pagination['total_rows'] = $this->aa_movies->no_of_search_movies();
$data['no_of_results'] = $pagination['total_rows'];
$pagination['use_page_numbers'] = TRUE;
$pagination['per_page'] = 20;
// Initialize pagination
$this->pagination->initialize($pagination);
// Offset
$offset = 20 * $offset;
// Get apartments
$data['apartments'] = $this->aa_movies->search_movies($this->input->get('keyword'), $this->input->get('city'), $this->input->get('locations'), $offset);
$this->load->view($this->config->item('index_search_view'), $data);
}
在视图中
<?php echo form_open(base_url('search'), array('method' => 'get'); ?>
<?php echo $this->pagination->create_links(); ?>
<?php echo form_close(); ?>
所以分页网址看起来像
http://localhost/reelstubs/search/1
但我想在分页网址中如下
http://localhost/reelstubs/search?keyword=complex&city=bangalore&page=1
即使我尝试通过包含$ _SERVER ['REQUEST_URI']来更改分页base_url。但网址看起来像
http://localhost/reelstubs/search?keyword=complex&city=bangalore/1
所以我没有使用$this->uri->segment();
获取页面请帮助我克服这个问题。我已经浪费了2天时间。这项工作将更受赞赏。
答案 0 :(得分:0)
您可以在隐藏的输入中添加过滤字符串(关键字和城市),并使用$ this-&gt; input-&gt; get('name')
或者您可以在细分中发送必要的值并使用$ this-&gt; uri-&gt; segment();
http://localhost/search/method(func)/complex/bangalore/1
$ keyword = $ this-&gt; uri-&gt; segment('3');
$ city = $ this-&gt; uri-&gt; segment('4');
$ page = $ this-&gt; uri-&gt; segment('5');
答案 1 :(得分:0)
使用分页库的CodeIgniter 3.0版本。它有一个配置选项来重用查询字符串。
我自己在CodeIgniter 2中实现了它,但是我没有替换分布式版本,而是将其部署为一个名为MY_Pagination的重载库,并将其放在我的'application / libraries'文件夹中。我必须做的唯一代码更改就是将访问修饰符设置为public而不是protected。