我有一张pagination
的表格。首先,我从我的数据库中选择所有数据,pagination
完美无缺。
然后,我开始过滤数据(搜索某些数据,例如:在SQL中使用WHERE
)。分页的第一个索引工作正常(仅显示某些数据),但是当我点击下一个索引(第二个,第三个)时,数据将恢复为默认值(过滤器( WHERE
,LIKE
)不正在工作。
这是用于分页的model
(我认为我在这里犯了错误):
public function get_umat() {
$this->db->select('*')->from('msumat')->limit(10, $this->uri->segment(3));
$this->db->join('mskelas', 'msumat.kelas_id = mskelas.kelas_id');
$search = $this->input->post('ddl_search');
$kelas = $this->input->post('ddl_kelas');
$kelas1 = $this->input->post('ddl_kelas1');
$kelas2 = $this->input->post('ddl_kelas2');
$nama = $this->input->post('txt_nama');
$alamat = $this->input->post('txt_alamat');
$bulan = $this->input->post('ddl_bulan');
$bulan1 = $this->input->post('ddl_bulan1');
$bulan2 = $this->input->post('ddl_bulan2');
if($this->input->post('btn_search'))
{
if($search === 'nama')
$this->db->like('nama', $nama);
else if($search === 'kelas')
$this->db->where('mskelas.kelas_id', $kelas);
else if($search === 'range_kelas')
$this->db->where("mskelas.kelas_id BETWEEN $kelas1 AND $kelas2");
else if($search === 'alamat')
$this->db->like('alamat', $alamat);
else if($search === 'bulan_lahir')
$this->db->where("MONTH(tanggal_lahir) = $bulan");
else if($search === 'range_tanggal_lahir')
$this->db->where("MONTH(tanggal_lahir) BETWEEN $bulan1 AND $bulan2");
}
return $this->db->get()->result();
}
public function count_umat(){
return $this->db->count_all('msumat');
}
然后这是我pagination
controller
(我想我需要修改$config['total_rows']
):
$config['base_url'] = site_url('/backend_umat/index');
$config['total_rows'] = $this->umat_m->count_umat();
$config['per_page'] = 10;
$config['uri_segment'] = 3;
$config['full_tag_open'] = '<div id="pagination">';
$config['full_tag_close'] = '</div>';
$this->pagination->initialize($config);
$data['pagination'] = $this->pagination->create_links();
我认为问题是:
COUNT
$config['total_rows']
model
(get_umat()
)才能让事情顺利进行感谢任何帮助。谢谢:D
答案 0 :(得分:1)
如果您想要使用多个过滤器应用搜索,它适用于第一页,ci始终查找网址段,对于第2或第3页,您需要发送您为第一页发送的所有搜索参数表单,表示您的网址应包含网址段,然后您可以过滤搜索记录,因为您没有提交第2页和第3页的表单。我建议你看一下这个教程,它有很好的方法来使用带有多个过滤器的搜索记录,并且可以完美地进行分页