el javascript es el siguiente:
Código PHP:
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,fecha1,fecha2,userfield){
divContenido = document.getElementById('contenido4');
ajax=objetoAjax();
ajax.open("GET", "paginador.php?pag="+nropagina+"&fecha1="+fecha1+"&fecha2="+fecha2+"&usefield="+userfield);
divContenido.innerHTML= '<img src="anim.gif">';
ajax.onreadystatechange=function() {
if (ajax.readyState==4) {
divContenido.innerHTML = ajax.responseText
}
}
ajax.send(null)
}
y el codigo de Paginador.php es el siguiente:
Código PHP:
<?php
//lamando a la clase de conexion a la base de datos
include("ConexionMYSQL.php"); //clase
$db = new MySQL(); //instanciandola
$userfield = $_GET[userfield];
//Capturo las variables de entrada de fecha para la paginacion
$fecha1 =$_GET[fecha1];
$fecha2 =$_GET[fecha2];
$RegistrosAMostrar=30;
//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;
}
echo "FECHA 1 = ".$fecha1." --- fecha2= ".$fecha2." --- userfield = ".$userfield." --- pagina actual = ".$PagAct;
$Resultado=mysql_query("SELECT * FROM cdr where date_format(calldate,'%Y-%m-%d') between '$fecha1' and '$fecha2' and userfield like '%".$userfield."%' LIMIT $RegistrosAEmpezar, $RegistrosAMostrar");
//miro a ver el número total de campos que hay en la tabla con el select
$rs = mysql_query("SELECT * FROM cdr where date_format(calldate,'%Y-%m-%d') between '$fecha1' and '$fecha2' and userfield like '%".$userfield."%' ");
$num_total_registros = mysql_num_rows($rs);
echo "   Registros =".$num_total_registros;
if (mysql_num_rows($rs))
{
//echo "<table border = '1'> \n";
echo "<table border = '1' id=myTable > \n";
print '<TR align="center">';
print '<TH><font size=1>CALLDATE</font></TH>';
print '<TH><font size=1>CLID</font></TH>';
print '<TH><font size=1>SRC</font></TH>';
print '<TH><font size=1>DST</font></TH>';
print '<TH><font size=1>DCONTEXT</font></TH>';
print '<TH><font size=1>CHANNEL</font></TH>';
print '<TH><font size=1>DSTCHANNEL</font></TH>';
print '<TH><font size=1>LASTAPP</font></TH>';
print '<TH><font size=1>LASTDATA</font></TH>';
print '<TH><font size=1>DURATION</font></TH>';
print '<TH><font size=1>BILLSEC</font></TH>';
print '<TH><font size=1>DISPOSITION</font></TH>';
print '<TH><font size=1>AMAFLAGS</font></TH>';
print '<TH><font size=1>ACCOUNTCODE</font></TH>';
print '<TH><font size=1>USERFIELD</font></TH>';
print '<TH><font size=1>UNIQUEID</font></TH>';
print '</TR> ';
while($fila=mysql_fetch_array($Resultado))
{
print '<TR align="center">';
echo "<td ><font size=1>".$fila['calldate']."</font></td>";
echo "<td><font size=1>".$fila['clid']."</font></td>";
echo "<td><font size=1>".$fila['src']."</font></td>";
echo "<td><font size=1>".$fila['dst']."</font></td>";
echo "<td><font size=1>".$fila['dcontext']."</font></td>";
echo "<td><font size=1>".$fila['channel']."</font></td>";
echo "<td><font size=1>".$fila['dstchannel']."</font></td>";
echo "<td><font size=1>".$fila['lastapp']."</font></td>";
echo "<td><font size=1>".$fila['lastdata']."</font></td>";
echo "<td><font size=1>".$fila['duration']."</font></td>";
echo "<td><font size=1>".$fila['billsec']."</font></td>";
echo "<td><font size=1>".$fila['disposition']."</font></td>";
echo "<td><font size=1>".$fila['amaflags']."</font></td>";
echo "<td><font size=1>".$fila['accountcode']."</font></td>";
echo "<td><font size=1>".$fila['userfield']."</font></td>";
echo "<td><font size=1>".$fila['uniqueid']."</font></td>";
print '</TR>';
}
echo "</table>";
}
//******--------determinar las páginas---------******//
$NroRegistros=$num_total_registros;
$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',$fecha1,$fecha2,$userfield)\">Primero</a> ";
if($PagAct>1) echo "<a onclick=\"Pagina($PagAnt,$fecha1,$fecha2,$userfield)\">Anterior</a> ";
echo "<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
if($PagAct<$PagUlt) echo " <a onclick=\"Pagina($PagSig,$fecha1,$fecha2,$userfield)\">Siguiente</a> ";
echo "<a onclick=\"Pagina($PagUlt,$fecha1,$fecha2,$userfield)\">Ultimo</a>";
?>
P.D
corrigiendo eso, la paginacion funciona 100% asi que pueden copiar el codigo si lo desean, es facil de implementar
Gracias!!!!