Pages

Monday, September 16, 2013

CodeIgniter's Pagination with a Search Term

On this article I’ll try to explain how to use CodeIgniter’s pagination library with a search term in a way that that our links look like:

Controller\action\search_term\page

CodeIgniter’s pagination library makes it easy for us to show long data lists generating tha links for the corresponding pages automatically, But it lacks a way to include a search term on the paginated results.

The problem is that if we inlcude a search term with the pagination, there is no specific function to include this search teram on the links for the following pages. As an extra complication we will solve this problem including a subset of data, on which we will apply both the pagination and an optional search term. And getting the links like this:

Controller\accion\id\termino de búsqueda\pagina.

We have the following scenario:

 - A list of cities.
 - A list of people who belong to a city.
 - We want to list the people belonging to a determined city, and we want to paginate the results, but also we want to be able to search in this result set and have a paginated result, using the same view.

Paginacion en CodeIgniter con Terminos de Busqueda (esp)

En este artículo tratare de explicar cómo usar la librería de paginación de CodeIgniter con un termino de búsqueda de tal manera que los enlaces de la paginación sean de la manera:

Controller\accion\termino_de_busqueda\pagina.

La librería de paginación de Codeigniter nos facilita el trabajo de mostrar largas listas de datos generando los enlaces de las paginas siguientes de manera automática, pero no tiene funciones que nos permitan incluir en este listado una búsqueda dinámica y paginar esos resultados.

El problema reside en que al incluir la búsqueda en la paginación, no existe una función específica para incluir la búsqueda en los enlaces de las paginas siguientes. Como una complicación extra solucionaremos este problema paginando el resultado de una consulta de un subconjunto de datos. Y obteniendo los enlaces de la manera:

Controller\accion\id\termino de búsqueda\pagina.

Tenemos la siguiente situación:

 - Lista de Lugares.
 - Lista de Personas que pertenecen a un lugar.
 - Se desea listar las personas pertenecientes a un lugar de manera paginada y sobre ese listado poder hacer búsquedas paginadas por apellido.