我正在传递URL查询字符串参数来控制表单但基本URL我在这里给出了我的控制器/方法名称我不知道如何将查询字符串也传递给基本URL。
结果页面网址:http://localhost/Shop/products?category=10&subcategory=15
分页显示链接,但当我点击下一个链接页面时,网址显示为http://localhost/Shop/products/&per_page=10
我的控制器代码:
$config = array();
$config['page_query_string'] = TRUE;
$config["base_url"] = 'control/method/';
$config["total_rows"] = $this->model->record_count();
$config["per_page"] = 10;
$config["uri_segment"] = 3;
//pagination style
$config['full_tag_open'] = '<ul>';
$config['full_tag_close'] = '</ul>';
$config['prev_link'] = '<';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['next_link'] = '>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="current"><a href="#">';
$config['cur_tag_close'] = '</a></li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['first_link'] = '<<';
$config['last_link'] = '>>';
$this->pagination->initialize($config);
$page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0;
$data["productcount"] = $config["total_rows"];
$data["records"] = $this->model->fetch_products($config["per_page"], $page);
$data["links"] = $this->pagination->create_links();
$this->load->view('admin/productlist', $data);
答案 0 :(得分:0)
试试这个 -
控制器 -
public function blog()
{
$this->load->library('pagination');
$total_row11 = $this->blogs_model->total_rows_count();
$config = array();
$config['base_url'] = base_url() . "blogs/blog";
$config['total_rows'] = $total_row11;
$config['per_page'] = 5;
$config['cur_tag_open'] = ' <a href="javascript:;">';
$config['cur_tag_close'] = '</a>';
$config['next_link'] = 'Next';
$config['prev_link'] = 'Previous';
$this->pagination->initialize($config);
if($this->uri->segment(3)){
$page = (int) ($this->uri->segment(3)) ;
}
else{
$page = 0;
}
$data['all_blogs'] = $this->blogs_model->getAllBlogs($config['per_page'],$page);
$str_links = $this->pagination->create_links();
$data['links'] = explode(' ',$str_links );
$this->load->view('other/blogs/blogs',$data);
}
在模型中 -
public function getAllBlogs($limit,$id)
{
$query = $this->db->query(" SELECT * FROM blogs ORDER BY blog_id DESC LIMIT $limit OFFSET $id ");
if ($query->num_rows() > 0) {
foreach ($query->result() as $row) {
$data[] = $row;
}
return $data;
}
return false;
}
答案 1 :(得分:0)
更改配置的 base_url ,并使用php http_build_query()
添加自定义查询变量:
$query_vars = array('category' => 10, 'subcategory' = 15);
// Or:
$query_vars = array(
'category' => $this->input->get('category'),
'subcategory' = $this->input->get('subcategory')
);
$config['base_url'] = 'control/method/?' . http_build_query($query_vars)
CI之后会将per_page
var添加到结尾。
在 CI3 中,您有以下配置项:
$config['reuse_query_string'] = TRUE;
旁注:http_build_query()
是 php5 方法。