Aprovecho este thread porque tengo una cuestión que hacer.
Tengo hecha una paginación para que muestre salida de resultados. Muestro 10 registros por página. Ahora mismo tengo 90 registros y me muestra 9 números (del 1 al 9) para paginar.
Ahora mismo no me supone un problema, pero cuando haya 900 registros, si tiene que sacar 90 números sí que será un problema xD.
Lo que quiero hacer entonces es limitar el número de números de páginas, por ejemplo a 5, quedando algo así en la página inicial:
1 2 3 4 5 ... 90
Si hago clic en el 5 por ejemplo, quedaría así:
3 4 5 6 7 ... 90
Cómo puedo hacerlo? Cuál es la idea? No se me ocurre
EDIT: vale estoy apollardao jajaja, siempre digo que postear en mv es mano de santo para resolver problemas, y vaya que sí, ni 10 minutos he tardado en hacerlo ¬¬, era muy difícil eso de "acatar" un for jajaja, en fin, sorry por levantar el tema para nada.
Por si quereis ver el resultado...
Tiendeando paginación
Y el código, que no cuesta nada<?php
// Si lo que mostramos ocupa mas de 1 pagina, mostramos la paginación.
if ($nPaginas > 1)
{
?>
<div id="paginacion" >
<table align="right">
<tr>
<td>
<?php
// Pagina en la que nos encontramos
if(!isset($_GET["pagina"]))
$pagina = 1;
else
$pagina = $_GET["pagina"];
// Colocamos el vinculo de retroceder cundo haya alguna pagina que retroceder y sino lo colocamos sin enlace para no romper el estilo
if($pagina > 1)
{
$p = $pagina - 1;
?>
<div class="numeroPaginacionPuntos">
<input type="button" class="botonPaginacionIzquierda"
onclick="location.href = '<?php echo "$rutaPaginacion&pagina=$p"; ?>'" value="" title="Página anterior" />
</div>
<?php
}
if(!isset($_GET['pagina']) || $_GET['pagina'] == 1 || $_GET['pagina'] == 2 || $_GET['pagina'] == 3)
{
if($nPaginas > 1 && $nPaginas < 2)
{
for($a = 1; $a < 3 ; $a++)
{
// Si estamos en la pagina, no ponemos hipervinculo
if($pagina == $a )
{
echo "<div class='numeroPaginacionActual'>$a</div>";
}else{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$a' title='Ir a la pagina $a'>$a</a></div>";
}
}
}
else if($nPaginas >= 2 && $nPaginas < 3)
{
for($a = 1; $a < 4 ; $a++)
{
// Si estamos en la pagina, no ponemos hipervinculo
if($pagina == $a )
{
echo "<div class='numeroPaginacionActual'>$a</div>";
}else{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$a' title='Ir a la pagina $a'>$a</a></div>";
}
}
}
else
{
for($a = 1; $a < 6 ; $a++)
{
// Si estamos en la pagina, no ponemos hipervinculo
if($pagina == $a )
{
echo "<div class='numeroPaginacionActual'>$a</div>";
}else{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$a' title='Ir a la pagina $a'>$a</a></div>";
}
}
}
echo "<div class='numeroPaginacionPuntos'>...</div>";
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$nUltima' title='Última página'>$nUltima</a></div>";
}
else if($_GET['pagina'] > 3 && $_GET['pagina'] < $nPaginas-2)
{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=1' title='Primera página'>1</a></div>";
echo "<div class='numeroPaginacionPuntos'>...</div>";
for($a = $_GET['pagina']-2; $a < $_GET['pagina']+3 ; $a++)
{
// Si estamos en la pagina, no ponemos hipervinculo
if($pagina == $a )
{
echo "<div class='numeroPaginacionActual'>$a</div>";
}else{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$a' title='Ir a la pagina $a'>$a</a></div>";
}
}
echo "<div class='numeroPaginacionPuntos'>...</div>";
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$nUltima' title='Última página'>$nUltima</a></div>";
}
else if($_GET['pagina'] >= $nPaginas-2 && $_GET['pagina'] <= $nUltima)
{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=1' title='Primera página'>1</a></div>";
echo "<div class='numeroPaginacionPuntos'>...</div>";
for($a = $nUltima-4; $a <= $nUltima ; $a++)
{
// Si estamos en la pagina, no ponemos hipervinculo
if($pagina == $a )
{
echo "<div class='numeroPaginacionActual'>$a</div>";
}else{
echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$a' title='Ir a la pagina $a'>$a</a></div>";
}
}
}
// Colocamos el vinculo avanzar cuando haya alguna pagina que avanzar
if($pagina < $nPaginas)
{
$p = $pagina + 1;
//echo "<div class='numeroPaginacion'><a href='".$rutaPaginacion."&pagina=$p' title='Pagina siguiente'>»</a></div>";
?>
<div class="numeroPaginacionPuntos">
<input type="button" class="botonPaginacionDerecha"
onclick="location.href = '<?php echo "$rutaPaginacion&pagina=$p"; ?>'" value="" title="Página siguiente" />
</div>
<?php
}
?>
</td></tr>
</table>
</div>
<!-- Fin paginacion div -->
<?php
} // FIN $nPaginas > 0
?>