Hola:
Estoy intentando paginar resultados de una base de datos con AJAX para no tener que andar actualizando la página mientras se navega por los registros de esta. Cuando cambio de página por primera vez, funciona todo a la perfección. Pero cuando el contenido carga los botones de navegación pasan a no funcionar (se muestran pero por mucho que hagas click no cambia de página).
Os dejo los códigos a ver si alguien se da cuenta de qué pasa:
paginador.php
script para la paginación
Estoy intentando paginar resultados de una base de datos con AJAX para no tener que andar actualizando la página mientras se navega por los registros de esta. Cuando cambio de página por primera vez, funciona todo a la perfección. Pero cuando el contenido carga los botones de navegación pasan a no funcionar (se muestran pero por mucho que hagas click no cambia de página).
Os dejo los códigos a ver si alguien se da cuenta de qué pasa:
paginador.php
<?php
// ... conexión a la base de datos ...
echo '<table>
<thead>
<tr>
<th scope="col">título</th>
<th scope="col">contenido</th>
<th scope="col">fecha</th>
<th scope="col">opciones</td>
</tr>
</thead>
<tbody>';
$result = $mysqli->query("SELECT * FROM tabla ORDER BY id DESC");
$count = $result->num_rows;
if($count > 0){
$rowsPerPage = 2;
$pageNum = 1;
if(isset($_GET['page'])) $pageNum = $_GET['page'];
$offset = ($pageNum - 1) * $rowsPerPage;
$total_paginas = ceil($count / $rowsPerPage);
$result = $mysqli->query("SELECT * FROM tabla ORDER BY id DESC LIMIT $offset, $rowsPerPage");
while($row = $result->fetch_array()){
$titulo = $row['titulo'];
$contenido = $row['contenido'];
$fecha = $row['fecha'];
echo "<tr>
<td>$titulo</td>
<td>$contenido</td>
<td>$fecha</td>
<td>acciones</td>
</tr>";
}
echo '</tbody>
<tfoot>
<tr>
<td>
<div class="pagination">
<ul>';
if($pageNum != 1) echo '<li><a class="navigate-link" data="'.($pageNum-1).'">Anterior</a></li>';
for($i=1; $i <= $total_paginas; $i++){
if ($pageNum == $i)
echo '<li class="active"><a class="navigate-link" data="'.$i.'">'.$i.'</a></li>';
else
echo '<li><a class="navigate-link" data="'.$i.'">'.$i.'</a></li>';
}
if ($pageNum != $total_paginas) echo '<li><a class="navigate-link" data="'.($pageNum+1).'">Siguiente</a></li>';
echo '</ul>
</div>
</td>
<td colspan="5" style="text-align: right;">texto derecha</td>
</tr>
</tfoot>
</table>';
}
?>script para la paginación
$(document).ready(function() {
$('.pagination ul li a').click(function(){
$('#content').html('Cargando...');
var page = $(this).attr('data');
var dataString = 'page='+page;
$.ajax({
type: "GET",
url: "paginador.php",
data: dataString,
success: function(data) {
$('#content').html(data);
}
});
});
});en el html simplemente incluyo paginador.php