Hola a todos amigos del web. Una vez más aqui con un nuevo problema. Sigo creando mi blog, y estoy implementando paginación con php y ajax para mostrar resultados dentro de un div.
De momento he conseguido hacer la consulta y que me muestre dentro del div los resultados con el css que he colocado y todo bien. El problema me llega cuando al clickar en cualquiera de los enlaces 'anterior-siguiente-primero-ultimo' es como que busca la consulta pero no me muestra nada!!! Me explico mejor, al cargar la página por primera vez todo va perfecto, pero al darle siguiente para que me muestre los próximos registros no me muestra los resultados.
El código que tengo es el que está colgado por varias páginas de internet. Lo pego de todas maneras.
Las líneas del div son:
Código PHP:
<div id="contenido">
<?php include('paginador.php')?>
</div>
El archivo paginador.php es:
Código PHP:
$RegistrosAMostrar=4;
//estos valores los recibo por GET
if(isset($_GET['pag'])){
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
$PagAct=$_GET['pag'];
//caso contrario los iniciamos
}else{
$RegistrosAEmpezar=0;
$PagAct=1;
}
$Resultado=mysql_query("SELECT * FROM comentarios_tabla ORDER BY comentarios_tabla.fecha_comentario DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$conexion);
echo "<h3 align='center'><br />Comentarios de otros usuarios</h3><hr />";
while($MostrarFila=mysql_fetch_array($Resultado)){
echo "<table border='0' width='100%'>";
echo "<tr>";
echo "<td width='65%' align='left'><span style='font-size:18px;color: #272727'><strong> ".$MostrarFila['nombre_usuario']."</strong></span> <span style='font-size:15px;color: #999'><strong>|| ". between($MostrarFila['fecha_comentario'], 'NOW()') ."</strong></span></td>";
echo "<td width='35%' align='right'></span></td>";
echo "</tr>";
echo "<tr>";
echo "<td colspan='2' align='justify' style='padding-left:25px;padding-right:25px;padding-top:10px'><span style='font-size:18px'>". saltoLinea($MostrarFila['mensaje_comentario']) ."</span><br /></td>";
echo "</tr>";
echo "</table>";
echo "<hr />";
echo "<br />";
}
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios_tabla",$conexion));
$PagAnt=$PagAct-1;
$PagSig=$PagAct+1;
$PagUlt=$NroRegistros/$RegistrosAMostrar;
//verificamos residuo para ver si llevará decimales
$Res=$NroRegistros%$RegistrosAMostrar;
// si hay residuo usamos funcion floor para que me
// devuelva la parte entera, SIN REDONDEAR, y le sumamos
// una unidad para obtener la ultima pagina
if($Res>0) $PagUlt=floor($PagUlt)+1;
//desplazamiento
echo "<a onclick=\"Pagina('1')\">Primero</a> ";
if($PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\">Anterior</a> ";
echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if($PagAct<$PagUlt) echo " <a onclick=\"Pagina('$PagSig')\">Siguiente</a> ";
echo "<a onclick=\"Pagina('$PagUlt')\">Ultimo</a>";
.... que supongo que aqui abajo, en los enlaces es por donde debe estar la historia.
Y el archivo ajax es:
Código Javascript
:
Ver originalfunction objetoAjax(){
var xmlhttp=false;
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function Pagina(nropagina){
//donde se mostrará los registros
divContenido = document.getElementById('contenido');
ajax=objetoAjax();
//uso del medoto GET
//indicamos el archivo que realizará el proceso de paginar
//junto con un valor que representa el nro de pagina
ajax.open("GET", "paginador.php?pag="+nropagina);
divContenido.innerHTML= '<img src="blog/anim.gif">';
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
//mostrar resultados en esta capa
divContenido.innerHTML = ajax.responseText
}
}
//como hacemos uso del metodo GET
//colocamos null ya que enviamos
//el valor por la url ?pag=nropagina
ajax.send(null)
}
Espero me puedan echar una mano pues la verdad es bastante efectivo el uso de ajax aquí, nunca lo había usado para crear paginación. Recién estoy usándola por primera vez.
Gracias
PD Editar: He descubierto algo. Cuando cargo la página por primera vez me muestra que estoy en la página '1 de 3', es decir el conteo de registros es correcto.... pero al darle a siguiente por ejemplo, me muestra que estoy en la página '2 de 0'... entiendo que no está repitiendo el conteo del total de registros. Estoy investigando el código para ver si encuentro algo... pero de momento no he logrado resolver