我有一个codeigniter搜索表单,其中包含一个下拉列表(Car)和一个checkbox数组(Car types)。我正在使用POST方法从数据库中获取值,但是发布方法与分页冲突。你可以检查我的代码并帮我找出错误。
这是我的控制器
public function search($offset = 0) {
$limit = 3;
$this->load->library('form_validation');
$this->load->model('model_x');
$this->form_validation->set_rules('car', 'Car','required');
$this->form_validation->set_rules('types', 'Car Type','required');
if($this->form_validation->run()) {
$car= $this->input->post('car');
$types = $this->input->post('types');
$this->load->library('pagination');
$config['base_url'] = 'http://localhost/abc/cont/search/';
// 'http://localhost/abc' is my base url
$config['total_rows'] = 14;
$config['per_page'] = 3;
$data['pagination'] = $this->pagination->initialize($config);
if ($this->model_x->did_search($car, $types, $limit, $offset)){
$data["results"] = $this->model_x->did_search($car, $types, $limit, $offset);
$this->load->view("search_ok",$data);
}
}
else
{
$data['message'] = 'Please select your options.';
$this->load->view("search_nok",$data);
}
}
答案 0 :(得分:2)
使用get
参数进行搜索会更好,因为除了使分页更容易之外,它还允许用户通过书签或其他超链接直接访问该链接,而无需每次需要重复时都发布表单“保存”搜索。
答案 1 :(得分:0)
你可以使用post方法搜索数据php ci进行分页 在会话和第二页检查会话中存储帖子数据,其中2?page_rows = 5 从URL获取。
这将有效
if (session_id() && !empty($this->input->get('page_rows', 0))) {
$pData= $this->session->userdata('custumer_data');
....
then query
}