Clase Paginador PHP con AJAX

9
8328

En PHPClasses encontramos una clase en PHP de un paginador. Lista los datos de una tabla en MySQL y su paginador en la parte inferior, pero además permite realizar una búsqueda en la base de datos y paginar los resultados. Todo lo anterior mediante llamadas AJAX, sin tener que recargar la página. 

La clase tiene muchas opciones de configuración como: páginas a mostrar, registros por página, establecer conexión, etc.

Usando la clase

<?php
// this is only used in debugging,
// use error_reporting(0) in production environment
error_reporting(E_ALL || E_STRICT);

include('paginator.class.php');
// instantiate mysqli connection
$conn = new mysqli('localhost', 'root', '','empresa') ;

$query = "SELECT * FROM customers";
//$query = "SELECT * FROM customers WHERE id > 1";

// Number of records per page
$recordsPerPage = 5;
if(!empty($_GET['search'])){
$searchQuery = $_GET['search'];
}

$pageId= intval($_GET['page']);
if (empty($pageId)) {
$pageId = 1;
}else{
$pageId = intval($pageId);
}
// if you are testing it locally uncomment the following line
// to see how it is going to look like
//sleep(2);

$paginator = new Paginator($pageId,$recordsPerPage,$query,$conn);

$paginator->debug = FALSE;

// field(s) to search in
// string or array of fields
$paginator->fields = 'name';
//$paginator->fields = array('name','id');

$paginator->searchQuery = $searchQuery;

// call the core function that paginates
$rows = $paginator->paginate();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script language="JavaScript" src="pagination.js"></script>
<link href="style.css" rel="stylesheet" type="text/css">
<script type="text/javascript" src="js/ajax.js"></script>
<script type="text/javascript" src="js/ajaxUpdater.js"></script>
<script type="text/javascript" src="js/paginate.js"></script>
</head>

<body>
<div id="wrapper">
<div id='search-box' class="search-box">
<form action="<?=$_SERVER['PHP_SELF']?>" onsubmit='paginate();return false;'>
<input id="search" type="text" class="search" />
<input type="submit" value="search" class="button" />
</form>
</div>

<div id="listing_container">
<table border="0" cellpadding="2" cellspacing="0" class="listing">
<tr>
<th nowrap="nowrap" width="40" align='left'> ID</th>
<th nowrap="nowrap" width="450" align='left'>Name</th>
</tr>
<?php

foreach($rows as $row){
echo "<tr>";
echo "<td nowrap='nowrap' align='center'>{$row['id']}</td>";
echo "<td nowrap='nowrap' align='left'>{$row['name']}</td>";
echo "</tr>";
}

echo "</table><br />";
$links = $paginator->getLinks ();
echo "<div class='paginator'> " . $links ;

echo "<p>Page " . $paginator->pageId . " of " . $paginator->totalPages . "</p>";

?>
</div><!--end of paginator-->
</div><!--end of listing_container-->
</div><!--end of wrapper-->
</body>
</html>

El resultado …

Paginacion AJAX PHP Clases

Para descargar cualquiera de los script que encontramos en PHPClasses debemos registrarnos.

Descargar | Class: AJAX Paginator

9 COMENTARIOS

  1. ME TIRA ESTE ERROR AL TRATAR DE BUSCAR
    Fatal error: Uncaught exception ‘Exception’ with message ‘Query error’ in C:\wamp\www\seminario2\PRUEBA\paginator.class.php:106 Stack trace: #0 C:\wamp\www\seminario2\PRUEBA\paginator.class.php(122): Paginator->getAffectedRows() #1 C:\wamp\www\seminario2\PRUEBA\sub_page.php(38): Paginator->paginate() #2 {main} thrown in C:\wamp\www\seminario2\PRUEBA\paginator.class.php on line 106

    y cuando voy a la pagina 2 no me muestra los datos y me devuelvo ala 1 y tampooc me los muestra que podra ser?

  2. Por que me tira el error:

    Fatal error: Class ‘mysqli’ not found in C:\AppServ\www\Paginador\index.php on line 8

    en la linea 8 tengo esto:

    $conn = new mysqli(‘localhost’, ‘mysql’, »,’test’) ;

    y las cosas estan bien puestas dentro del $conn

  3. Pues de antemo gracias por el codigo.. y pues tratando de compartir informacion… la razon por la que de tira el error Class ‘mysqli’ not found in C:\AppServ\www\Paginador\index.php on line 8 es porque «mysqli» Es una nueva funcionalidad que nos permite conectarnos de forma mas sencilla solo al instanciarlo, hay que revisar las versiones de appserver o wampserver o parecidos y verificar si en el php.ini esta primeramente instalado ;extension=mysqli» sin el «;». Por eso es que tira el error si no aparece quiere decir que la version no tiene esa libreria y tienes de dos:

    1: Instalar una nueva version.
    2: Instalar la librería.

  4. No me funciona, la parte de la busqueda y recarga la pagina. De donde consigo las librerias que utilizas en tu codigo fuente.

  5. He descargado los fuentes correctamente pero no me funciona la parte de la búsqueda y recarga la pagina.

Comments are closed.