Esta es la función javascript que maneja el ajax
Código HTML:
function objetoAjax(){
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return xmlhttp;
}
function Pagina(nropagina){
//donde se mostrará los registros
divContenido = document.getElementById('contenido');
ajax=objetoAjax();
//uso del metodo 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);
ajax.onreadystatechange=function() {
if(ajax.readyState==1){
divContenido.innerHTML = '<img src="ajax-loader.gif" border="0"/>Cargando, espere por favor...';
//modificamos el estilo de la div, mostrando una imagen de fondo
}
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)
}
Esta es la que se encarga de hacer la paginacion de las hojas
Código PHP:
<?php
require('conexion.php');
$RegistrosAMostrar=1;
//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 noticias ORDER BY idNoticias DESC LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$con);
echo "<table border='0' cellspacing='0' cellpadding='0' >";
while($MostrarFila=mysql_fetch_array($Resultado)){
echo "<tr>";
echo "<td class='titulo'>".$MostrarFila['titulo']."</td>";
echo "</tr>";
echo "<tr>";
echo "<td><hr class='titulo'/></td>";
echo "</tr>";
echo "<tr>";
echo "<td class='parrafo'>".$MostrarFila['contenido']."</td>";
echo "</tr>";
}
echo "</table>";
//******--------determinar las páginas---------******//
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM noticias",$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;
//desplazamiento
echo "<a onclick=\"Pagina('1')\" class='enlaces' href='#inicio'>Primero</a> ";
if($PagAct>1) echo "<a onclick=\"Pagina('$PagAnt')\" class='enlaces' href='#inicio'>Anterior</a> ";
if($PagAct<$PagUlt) echo " <a onclick=\"Pagina('$PagSig')\" class='enlaces' href='#inicio'>Siguiente</a> ";
echo "<a onclick=\"Pagina('$PagUlt')\" class='enlaces' href='#inicio'>Ultimo</a>";
echo "<br/>";
echo "<p><strong class='enlaces'>Página ".$PagAct."/".$PagUlt."</strong></p>";
echo "<p><a class='enlaces' href='#inicio'>Volver al inicio de la página.</a></p>";
?>
Pues aunque no me gusta usar IE uno tiene uno que pensar en todos los usuarios y tratar de que las paginas sean visibles en lo posible en todos los navegadores. Lo de IE6 no me preocupa en si, pero igual como la versión que uso de IE para pruebas es la 8 y esa la usa mucha gente me parece extraño que no sirva. La pagina si carga, pero si se intenta pasar de noticia empieza a molestar.
Gracias de antemano por la colaboración. Quedo pendiente de cualquier comentario.