Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Paginación en CodeIgniter

La paginación es la característica más requerida en la aplicación web. En general, la paginación es útil cuando los datos se recuperan de la base de datos y se enumeran en la página web. La paginación en la lista de datos es obligatoria cuando necesita enumerar los datos enormes. Ayuda a cargar datos más rápido y hace que su aplicación web sea fácil de usar.
Si su aplicación web construida con el marco CodeIgniter, es muy fácil implementar la paginación en la lista de datos. CodeIgniter proporciona la clase de Paginación para crear enlaces de paginación para el conjunto de resultados. En este tutorial, proporcionaremos una guía paso a paso para implementar la paginación en CodeIgniter usando la biblioteca de paginación .
A modo de ejemplo, buscaremos los datos de las publicaciones de la base de datos y listaremos estos registros con el enlace de paginación. Se implementará la siguiente funcionalidad para demostrar la paginación de CodeIgniter .
  • Recuperar datos de la base de datos MySQL.
  • Crear enlaces de paginación utilizando la biblioteca de paginación.
  • Lista de registros con enlaces de paginación.

Crear tabla de base de datos

La poststabla contiene algunos campos básicos para almacenar los datos de la publicación.
CREATE  TABLE ` mensajes ` (
  `id`  int ( 11 ) NOT NULL AUTO_INCREMENT,
  ` title`  varchar ( 255 ) compilar utf8_unicode_ci NOT NULL ,
  `contenido en materia  texto INTERCALAR utf8_unicode_ci NOT NULL ,
  PRIMARY KEY ( ` id` )
) MOTOR = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;

Controlador (Posts.php)

El controlador de Mensajes consta de 2 métodos, __construct()index()
__construir()
  • Cargar biblioteca de paginación.
  • Cargar modelo de correos.
  • Especifique el límite de paginación (por página).
índice()
  • Obtener el total de filas con el getRows()método de modelo de publicación.
  • Especifique la configuración en $configmatriz para la clase de paginación.
  • Inicialice la clase de Paginación con sus opciones preferidas usando el initialize()método.
  • Define el desplazamiento por la página URI.
  • Obtener filas de la tabla de publicaciones utilizando el getRows()método de modelo de publicación.
  • Pase los datos de las publicaciones para ver y cargar la vista de lista.
Algunas opciones de configuración están especificadas para el estilo de los enlaces de paginación con Bootstrap. Puede omitir esta configuración (estilo) si desea usar el estilo básico.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); 

los mensajes de la  clase  extienden el  controlador_CIN  { 
    
    función  __construct () { 
        parent :: __construct (); 
        // cargar la biblioteca de paginación 
        $ this -> load -> library ( 'pagination' ); 
        // cargar modelo post 
        $ this -> carga -> modelo ( 'publicar' ); 
        // por página límite 
        $ esto -> perPage  4 ; 
    } 
    
índice de     función pública  () { 
        $ data  = array (); 
        
        // obtener el conteo de filas 
        $ conditions [ 'returnType' ] =  'count' ; 
        $ totalRec  $ this -> post -> getRows ( $ conditions ); 
        
        // pagination config 
        $ config [ 'base_url' ] =  base_url (). 'posts / index /' ; 
        $ config [ 'uri_segment' ] =  3 ; 
        $ config [ 'total_rows' ] = $ totalRec ; 
        $ config [ 'per_page' ] =  $ this -> perPage ; 
        
        // styling 
        $ config [ 'num_tag_open' ] =  '<li>' ; 
        $ config [ 'num_tag_close' ] =  '</li>' ; 
        $ config [ 'cur_tag_open' ] =  '<li class = "active"> <a href="javascript:void(0);">' ; 
        $ config [ 'cur_tag_close' ] =  '</a> </li>' ; 
        $ config [ 'next_link' ] =  'Siguiente' ; 
        $ config ['prev_link' ] =  'Prev' ; 
        $ config [ 'next_tag_open' ] =  '<li class = "pg-next">' ; 
        $ config [ 'next_tag_close' ] =  '</li>' ; 
        $ config [ 'prev_tag_open' ] =  '<li class = "pg-prev">' ; 
        $ config [ 'prev_tag_close' ] =  '</li>' ; 
        $ config [ 'first_tag_open' ] =  '<li>' ; 
        $ config [ 'first_tag_close' ] =  '</li>' ; 
        $ config [ 'last_tag_open'] =  '<li>' ; 
        $ config [ 'last_tag_close' ] =  '</li>' ; 
        
        // inicializar la biblioteca de paginación 
        $ this -> pagination -> initialize ( $ config ); 
        
        // define offset 
        $ page  $ this -> uri -> segment ( 3 ); 
        $ offset  =! $ página ? 0 : $ página ; 
        
        // obtener filas 
        $ conditions [ 'returnType' ] =  '' ; 
        $ condiciones [ '] =  $ offset ; 
        $ conditions [ 'limit' ] =  $ this -> perPage ; 
        $ data [ 'posts' ] =  $ this -> post -> getRows ( $ conditions ); 
        
        // cargar la lista de la vista de página 
        $ this -> load -> view ( 'posts / index' $ data ); 
    } 
    
}

Modelo (Post.php)

El modelo de publicación se utiliza para recuperar datos de publicaciones de la base de datos. La getRows()función recupera los registros de la tabla de publicaciones según la restricción de límites proporcionada en la $paramsmatriz y devuelve los datos de las publicaciones como una matriz.
<? php  if (!  defined ( 'BASEPATH' )) exit ( 'No se permite el acceso directo al script' ); 
clase de  mensaje  se extiende  CI_Model { 
    / * 
     * Obtener mensajes 
     * / 
    función  GetRows ( $ params  = array ()) { 
        $ this -> db -> seleccionar ( '*' ); 
        $ this -> db -> from ( 'posts' ); 
        if ( array_key_exists ( "id" , $ params )) { 
            $ this ->db -> where ( 'id' , $ params [ 'id' ]); 
            $ consulta  $ esto -> db -> get (); 
            $ result  $ query -> row_array (); 
        } else { 
            // establece start y limit 
            si ( array_key_exists ( "start" , $ params ) &&  array_key_exists ( "limit" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit'], $ params [ 'start' ]); 
            } elseif (! array_key_exists ( "start" , $ params ) &&  array_key_exists ( "limit" , $ params )) { 
                $ this -> db -> limit ( $ params [ 'limit' ]); 
            } 
            
            if ( array_key_exists ( "returnType" , $ params ) &&  $ params [ 'returnType' ] ==  'count'
                -> db -> count_all_results (); 
            } else { 
                $ query  $ this -> db -> get (); 
                $ resultado  = ( $ consulta -> num_rows ()>  0 )? $ consulta -> result_array (): FALSE ; 
            } 
        } 

        // devolver exagerado los datos 
        de retorno  $ resultado ; 
    } 
}

Ver (mensajes /)

La carpeta de vista ( posts/) contiene un index.phparchivo para enumerar los datos paginados.
index.php
La biblioteca bootstrap se usa para diseñar las listas de publicaciones y los enlaces de paginación. Por lo tanto, incluya primero la biblioteca de Bootstrap. Si desea utilizar un estilo básico, no necesita incluirlo.
< link  rel = "hoja de estilo"  href = "http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" >
En el index.phparchivo, los datos de las publicaciones se enumeran con los enlaces de paginación. La create_links()función de la clase de Paginación genera los enlaces de paginación.
< div  class = "panel panel-default" >
    < div  class = "panel-header" > Publicaciones </ div >
    < div  class = "panel-body" >
        < table  class = "table table-striped" >
            < thead >
                < tr >
                    < th  width = "5%" > ID </ th >
                    < th  width = "30%" > Título </ th >
                    < th  width = "65%" > Contenido </ th >
                </ tr >
            </ thead >
            < tbody  id = "userData" >
                 <? php  if (! empty ( $ posts )): foreach ( $ posts  as  $ post ):  ?> 
                < tr >
                    < td > <? php  echo  '#' . $ post [ 'id' ]; ?> </ td >
                    < td > <? php  echo  $ post [ 'title' ]; ?> </ td >
                    < td > <? php  echo ( strlen ( $ post [ 'content' ])> 150 )? substr ( $ post [ 'contenido' ], 0 , 150 ). '...' : $ post [ 'contenido' ]; ?> </ td >
                </ tr >
                 <? php  endforeach; else:  ?> 
                < tr > < td  colspan = "3" > Publicaciones no encontradas ...... </ td > </ tr >
                 <? php  endif; ?> 
            </ tbody >
        </ table >
    </ div >
</ div >
 <! - renderizar enlaces de paginación -> 
< ul  class = "pagination pull-right" >
     <? php  echo  $ this -> pagination -> create_links (); ?> 
</ ul >

Conclusión

La biblioteca de Paginación de CodeIgniter es fácil de usar y personalizar. Aquí hemos mostrado un ejemplo de paginación básica en la aplicación CodeIgniter. Sin embargo, puede personalizar fácilmente este código de paginación según sus requerimientos. Si desea integrar una paginación Ajax en CodeIgniter, siga este tutorial: Paginación Ajax en Codeigniter Framework

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas