Busca e Paginação em Codeigniter 3
Bom dia. Galera, estou com um problema e não consigo resolver. Estou desenvolvendo um sistema, e tenho um prazo de entrega, porem travei na paginação de resultados. Se ser com pesquisa funciona normalmente porem quando eu pesquiso algo (utilizo 4 atributos de pesquisa) a segunda pagina não carrega a pesquisa, ela reseta e lista tudo. Estou passando via get.
Controler:
public function paginacao($url, $total_results, $per_page)
{
$this->load->library('pagination');
$config['base_url'] = $url;
$config['total_rows'] = $total_results;
$config['per_page'] = $per_page;
$cofig['page_query_srting'] = TRUE;
$config['next_link'] = 'Próxima';
$config['prev_link'] = 'Anterior';
$config['full_tag_open'] = '<ul class="pagination justify-content-end">';
$config['full_tag_close'] = '</ul>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="page-item active"><a class="page-link" href="#">';
$config['cur_tag_close'] = '<span class="sr-only">(current)</span></a></li>';
$config['prev_tag_open'] = '<li class="prev">';
$config['prev_tag_close'] = '</li>';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['first_link'] = 'Primeira';
$config['attributes'] = array('class' => 'page-link');
$config['last_link'] = 'Última';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$this->pagination->initialize($config);
}
public function search()
{
$getData = $this->input->get();
$search = array
(
'codigo' => isset($getData['funcionario_codigo']) ? 'funcionario_codigo='.$getData['funcionario_codigo'] : 'funcionario_codigo=',
'nome' => isset($getData['funcionario_nome']) ? 'funcionario_nome='.$getData['funcionario_nome'] : 'funcionario_nome=',
'empresa' => isset($getData['funcionario_empresa']) ? 'funcionario_empresa='.$getData['funcionario_empresa'] : 'funcionario_empresa=',
'situacao' => isset($getData['funcionario_situacao']) ? 'funcionario_situacao='.$getData['funcionario_situacao'] : 'funcionario_situacao=',
'per_page' => isset($getData['per_page']) ? 'per_page='.$getData['per_page'] : 'per_page='
);
$total_rows = $this->funcionario_model->count('funcionario');
$url = base_url().'funcionario/search?'.$search['per_page'].'&'.$search['codigo'].'&'.$search['nome'].'&'.$search['empresa'].'&'.$search['situacao'];
$this->paginacao($url, $total_rows, $getData['per_page']);
$inicio = ($getData['per_page'] != NULL) ? $getData['per_page'] : '0';
$data = array
(
'title' => 'Listar Funcionários',
'control' => 'funcionario',
'results' => $this->funcionario_model->search($getData, $getData['per_page'], $inicio),
'pagination' => $this->pagination->create_links(),
'total_rows' => $total_rows,
);
$this->load->view('frame/cabecalho');
$this->load->view('frame/navegacao');
$this->load->view('funcionario/listar', $data);
}
Model:
public function search($postData = null, $limit = null, $offset = null)
{
$this->db->select('Funcionario.funcionario_Nome, Funcionario.CodFuncionario, Funcionario.funcionario_Ativo, Empresa.empresa_Nome, Empresa.CodEmpresa');
$this->db->from($this->table);
$this->db->join('Empresa','Empresa.CodEmpresa = Funcionario.CodEmpresa');
if($postData['funcionario_codigo'] != '')
{
$this->db->where('CodFuncionario', $postData['funcionario_codigo']);
}
if($postData['funcionario_nome'] != '')
{
$this->db->like('funcionario_Nome', $postData['funcionario_nome']);
}
if($postData['funcionario_empresa'] != '')
{
$this->db->like('Empresa.empresa_Nome', $postData['funcionario_empresa']);
}
if($postData['funcionario_situacao'] != 'all')
{
$this->db->like('funcionario_Ativo', $postData['funcionario_situacao']);
}
$this->db->limit($offset, $limit);
return $this->db->get()->result();
}Discussão (0)
Carregando comentários...