programador_brasileiro2015 0 Denunciar post Postado Julho 15, 2015 Olá pessoal, sou novo por aqui e no fórum. Gostaria de uma ajudinha de vocês. Estou tentando fazer por conta própria um sistema de busca simples com paginação, porém não consigo ajeitar um erro. Bom... o código abaixo está funcionando perfeitamente, porém na hora de buscar, o sistema até busca os registros mas a numeração da paginação continua o mesmo. Exemplo: Estou listando somente 5 registros na tela, tendo o total de 20 registros cadastrados. nome do cliente 1 nome do cliente 2 nome do cliente 3 nome do cliente 4 nome do cliente 5 [ < ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ > ] Quando tento buscar um nome do cliente, funciona, porém a numeração continua o mesmo, ou seja, de 1 a 4. Veja o código: Model class Lista_paginacao_busca_model extends CI_Model { function __construct(){ parent::__construct(); } # Somar quantidade de registro function somar_registros() { # Caso não seja acionado a busca, listar normal if($this->input->get('txt')=="") { return $this->db->count_all('pessoas'); // Isso aqui faz gerar a quantidade de numeros na paginação. } else { $this->db->like('nome', $this->input->get('txt')); return $this->db->count_all('pessoas'); // Estou tentando retornar a mesma quantidade que foi buscado para gerar a quantidade de correta na busca. } } # Consultar a tabela para realizar a paginação function consultar_tabela($_limit, $_start) { # Criando a ordem na listagem $this->db->order_by('id', 'desc'); # Caso não seja acionado a busca, listar normal if($this->input->get('txt')=="") { $this->db->limit($_limit, $_start); return $this->db->get('pessoas')->result(); } else { $this->db->like('nome', $this->input->get('txt')); #$this->db->or_like('fone', $this->input->get('txt')); $this->db->limit($_limit, $_start); return $this->db->get('pessoas')->result(); } } Controller: class Lista_paginacao_busca extends CI_Controller { # Liga o model geral function __construct() { parent::__construct(); $this->load->model('lista_paginacao_busca_model'); $this->load->model('includes'); } # Carregando os registros com paginação public function index() { $this->page(); } public function buscar() { $this->page(); } # Listagem dos registros na view public function page() { $url = '/lista_paginacao_busca/page/'; $page = ($this->uri->segment(3)) ? $this->uri->segment(3) : 0; $data['titulo'] = "Lista com paginação"; $data["registros"] = $this->lista_paginacao_busca_model->consultar_tabela(registrar_paginacao_num(), $page); $data["gerar_paginacao"] = criar_paginador($url, $this->lista_paginacao_busca_model->somar_registros()); $this->includes->cabeca($data); $this->load->view('lista_paginacao_busca', $data); $this->includes->rodape(); } Helper: if(!function_exists('criar_paginador')) { function registrar_paginacao_num(){return 5;} function criar_paginador($_url, $_total) { $ci = &get_instance(); $ci->load->library('pagination'); $config['uri_segment'] = 3; $config['base_url'] = base_url($_url); $config['total_rows'] = $_total; $config['per_page'] = registrar_paginacao_num(); $config["num_links"] = round($config["total_rows"] / $config["per_page"]); $config['use_page_numbers'] = false; $config['display_pages'] = true; $config['full_tag_open'] = '<div class="pagination"><ul>'; $config['first_link'] = '« Primeira'; $config['first_tag_open'] = '<li class="prev">'; $config['first_tag_close'] = '</li>'; $config['last_link'] = 'Ultima »'; $config['last_tag_open'] = '<li class="next">'; $config['last_tag_close'] = '</li>'; $config['next_link'] = 'Próximo →'; $config['next_tag_open'] = '<li class="next">'; $config['next_tag_close'] = '</li>'; $config['prev_link'] = '← Anterior'; $config['prev_tag_open'] = '<li class="prev">'; $config['prev_tag_close'] = '</li>'; $config['cur_tag_open'] = '<li class="active"><a href="">'; $config['cur_tag_close'] = '</a></li>'; $config['num_tag_open'] = '<li class="page">'; $config['num_tag_close'] = '</li>'; $config['full_tag_close'] = '</ul></div>'; $ci->pagination->initialize($config); return $ci->pagination->create_links(); } } Desde já agradeço a ajuda gente! Compartilhar este post Link para o post Compartilhar em outros sites
programador_brasileiro2015 0 Denunciar post Postado Julho 15, 2015 Galera, foi um erro meu... O código acima está funcionando perfeitamente e não há erro algum. O problema é que, quando não há registro suficiente na listagem na hora da busca, a paginação some. é somente isso. O código acima irá servir para aqueles que estão em busca de como fazer. Só não está funcionando "ainda" quando avança a paginação na busca. Em uma outra oportunidade irei postar aqui. Abraços a todos! Compartilhar este post Link para o post Compartilhar em outros sites