Hola!
Al fin, conseguí poder paginar los resultados con AJAX! Pero ahora tengo un problema, hay varios enlaces (Primera, Anterior, Siguiente, Última) para navegar entre las páginas de comentarios.
Cuando le doy a cualquier enlace, todo funciona bien pero... sólo puedo hacer click una vez en un enlace! Si intento clickear en otro no pasa nada :S
A ver si alguien me puede ayudar!
Tengo estos códigos:
ajax.js
paginador.php
Gracias, un saludo!
Al fin, conseguí poder paginar los resultados con AJAX! Pero ahora tengo un problema, hay varios enlaces (Primera, Anterior, Siguiente, Última) para navegar entre las páginas de comentarios.
Cuando le doy a cualquier enlace, todo funciona bien pero... sólo puedo hacer click una vez en un enlace! Si intento clickear en otro no pasa nada :S
A ver si alguien me puede ayudar!
Tengo estos códigos:
ajax.js
function 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('commentlist');
var id=encodeURIComponent(document.getElementById("idnovedad").value)
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?id="+id+"&pag="+nropagina);
divContenido.innerHTML= 'Cargando...';
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)
}paginador.php
<?php
$id = strip_tags($_GET[id]);
$pag = strip_tags($_GET[pag]);
require('conexion.php');
$RegistrosAMostrar=10;
//estos valores los recibo por GET
if(isset($_GET['pag'])){
$RegistrosAEmpezar=($pag-1)*$RegistrosAMostrar;
$PagAct=strip_tags($pag);
//caso contrario los iniciamos
}else{
$RegistrosAEmpezar=0;
$PagAct=1;
}
$Resultado=mysql_query("SELECT * FROM comentarios WHERE id = $id ORDER BY fecha,hora ASC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
while($qry=mysql_fetch_array($Resultado)){
$fecha=isset($_GET['fecha'])?$_GET['fecha']:date("Y-m-d");
list($ano,$mes,$dia)=explode("-",$qry[fecha]);
$meses=array('Ene','Feb','Mar','Abr','May','Jun','Jul','Ago','Sep','Oct','Nov','Dic');
$mes=$meses[$mes-1];
$idcomentario = strip_tags($qry[idcomentario]);
$nick = strip_tags($qry[nick]);
$comentario = expresiones(strip_tags($qry[comentario]));
$hora = strip_tags($qry[hora]);
$edicion = strip_tags($qry[edicion]);
$horaedicion = strip_tags($qry[horaedicion]);
$tipo = strip_tags($qry[tipo]);
$fecha=isset($_GET['edicion'])?$_GET['edicion']:date("Y-m-d");
list($ano2,$mes2,$dia2)=explode("-",$qry[edicion]);
$meses=array('1','2','3','4','5','6','7','8','9','10','11','12');
$mes2=$meses[$mes2-1];
if($tipo == "normal"){
echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'>
<div id='comment-$idcomentario'>
<div class='author vcard'>
<div class='date'><span class='day'>$dia</span> <span class='month'>$mes</span> <span class='year'>$ano</span></div>
<img alt='' src='http://www.minics.com/avatars/$nick-XS.jpg' class='avatar avatar-45 photo' height='45' width='45'><img src='http://www.minics.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45'>
<cite class='authName fn'>$nick</cite> </div><!-- .comment-author .vcard -->
<div class='comment-body'>
<p>$comentario</p>
<div class='comment-meta'>
Publicado a las $hora";
}else{
echo "<li class='comment even thread-even depth-1' id='li-comment-$idcomentario'>
<div id='comment-$idcomentario'>
<div class='author2'>
<div class='date'><span class='day'>$dia</span> <span class='month2'>$mes</span> <span class='year2'>$ano</span></div>
<img alt='' src='http://www.minics.com/avatars/$nick-XS.jpg' class='avatar avatar-45 photo' height='45' width='45'><img src='http://www.minics.com/img/saysomething.gif' class='saysomething' alt='arrow' height='45'>
<cite class='authName2 fn'>$nick</cite> </div><!-- .comment-author .vcard -->
<div class='comment-body2'>
<p>$comentario</p>
<div class='comment-meta'>
Publicado a las $hora";
}
if($edicion != "") {
echo " | <small><u>Última edición:</u> $dia2/$mes2/$ano2 a las $horaedicion</small>";
} else {
echo " </div><!-- .comment-meta .commentmetadata -->
</div>
<!--div class='reply'>
</div--><!-- .reply -->
</div><!-- #comment-## -->
</li>";
}
}
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM comentarios WHERE id = $id",$con));
$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;
// Mostramos para cambiar de página de comentarios
echo "<h3 class='comments-title'>";
echo "<a onclick=\"Pagina('1')\">« Primera</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')\">Última »</a>";
echo "</h3>";
?>Gracias, un saludo!