Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/01/2012, 12:06
Avatar de catpaw
catpaw
 
Fecha de Ingreso: mayo-2010
Ubicación: xalapa
Mensajes: 856
Antigüedad: 14 años
Puntos: 23
evitar error en paginacion

hola forer@s

estoy haciendo una paginacion php-ajax, mi duda queda aqui en php (segun yo )

cuando hay un solo registro

quisiera que se mostrara solo "Pagina 1/1" actualmente se muestra

"<<-Primero <-Anterior Pagina 1/1 Siguiente-> Ultiimo->>"

cuando hay mas de un registro si esta bien que aparezcan estas opciones, anunque tambien debe seguir esta logica:

si esta en la pagina 1 mostrar:

"Pagina 1/7 Siguiente-> Ultiimo->>"

si esta en cualquier pagina (2,3,4,5 o 6...) mostrar

"<<-Primero <-Anterior Pagina 2/7 Siguiente-> Ultiimo->>"

si esta en la ultima pagina

"<<-Primero <-Anterior Pagina 7/7"

como les comento, actualmente se muestran todas las opciones sin importar en que pagina este y vienen los errores al estar en la pagina 1 y dar clic en anterior, o siguiente que no muestra nada, eso es lo que deseo evitar, dejo el codigo para ver que mejoras se le pueden hacer

gracias

pagina procesar.php

Código PHP:
<?php
$opcion
=trim($_GET['opcion']); //recibo variable que el usuario envia para saber que es lo que èste va a consultar

$registros 10
if(isset(
$_GET['pag'])){  
    
$inicio=($_GET['pag']-1)*$registros;  
    
$PagAct=$_GET['pag']; 
}else{  
    
$inicio=0;  
    
$PagAct=1
}

//...consulta para sacar los registros
$sql_query="Select * from tabla where opcion='$opcion' limit $inicio, $registros";
$res mysql_query($sql_query) or die('Error en la consulta '.mysql_error());

//...muestro registros

//...determinar paginas
$PagAnt=$PagAct-1
$PagSig=$PagAct+1
$PagUlt=$NroRegistros/$registros
$Resi=$NroRegistros%$registros;
?>    
        <div class='paginacion'>
            <?php
            
if($Resi>0$PagUlt=floor($PagUlt)+1
            
?>    
                <a onclick="paginacion('1', 'id_capa', 'pagina', '<?php echo $opcion?>')"><img src='go-first.png'/><span>Primero</span></a>
            <?php 
            
if($PagAct>1)
            
?> 
                <a onclick="paginacion('<?php echo $PagAnt?>', 'id_capa', 'pagina', '<?php echo $opcion?>')"><img src='go-left.png'/><span>Anterior</span></a> 
                <span><b><?php echo "Página ".$PagAct."/".$PagUlt." " ?></b></span>
            <?php
            
if($PagAct<$PagUlt)  
            
?>    
                <a onclick="paginacion('<?php echo $PagSig ?>', 'id_capa', 'pagina', '<?php echo $opcion?>')"><span>Siguiente</span><img src='go-right.png' /></a> 
                <a onclick="paginacion('<?php echo $PagUlt ?>', 'id_capa', 'pagina', '<?php echo $opcion?>')"><span>&Uacute;ltimo</span><img src='go-last.png'/></a>
        </div>
la funcion ajax lo unico que hace es recoger el numero de pagina en el que se encuentra el usuario, el div en el que se mostrara el resultado, el nombre de la pagina, y una variable que se necesita para "recordar" que es lo que el usuario esta consultando; y enviarlo devuelta:

function paginacion(nropagina, capa, pagina, variable)
....
ajax.open("GET", pagina+".php?pag="+nropagina+"&opcion="+variable);