Bom, hoje é o seguinte, estou com um sistema de paginação, porém ele tem um defeito.
Se ele vê que o banco gera 1000 páginas, ele mostra as mil páginas.
O que eu gostaria é que quando o número de páginas mostrados do indice chegasse a 5 ele não mostrasse o resta da quantidade de páginas, mas sim um "...", e quando ele chegasse na página 5 o indice mostrasse as páginas até a 10, e antes do número 5 um "...", e depois da página 10 se tivesse outras páginas mostrasse um "..."
Bom irei mostrar imagens para deixar mais lúdico o que eu necessito:
Forma de paginação do meu script:
Forma que eu gostaria:
<<Anterior [1] 2 3 4 5 ... Próximo>>
Ai se o usuário chega na página 5:
<<Anterior ... 4 [5] 6 7 8 9 ... Próximo>>
Bom é mais o menos isso que eu queria, se alguém puder me ajudar eu agradeço! Estou tentando fazer esse efeito na paginação faz tempo!
Ah, e ai vai meu script se alguém puder editar ele pra mim já eu agradeço:
Pergunta
AkioKawakami
Olá de novo pessoal,
Bom, hoje é o seguinte, estou com um sistema de paginação, porém ele tem um defeito.
Se ele vê que o banco gera 1000 páginas, ele mostra as mil páginas.
O que eu gostaria é que quando o número de páginas mostrados do indice chegasse a 5 ele não mostrasse o resta da quantidade de páginas, mas sim um "...", e quando ele chegasse na página 5 o indice mostrasse as páginas até a 10, e antes do número 5 um "...", e depois da página 10 se tivesse outras páginas mostrasse um "..."
Bom irei mostrar imagens para deixar mais lúdico o que eu necessito:
Forma de paginação do meu script:
Forma que eu gostaria:
<<Anterior [1] 2 3 4 5 ... Próximo>>
Ai se o usuário chega na página 5:
<<Anterior ... 4 [5] 6 7 8 9 ... Próximo>>
Bom é mais o menos isso que eu queria, se alguém puder me ajudar eu agradeço! Estou tentando fazer esse efeito na paginação faz tempo!
Ah, e ai vai meu script se alguém puder editar ele pra mim já eu agradeço:
<?php include('conexao_com_o_bd.php'); ?> <?php $pagessize = 20; // Quantos registros por página vai ser mostrado if($_GET['pages']){ $pages = $_GET['pages']; }else{ $pages = 0; } ?> <table width="700" align="right" cellpadding="0" cellspacing="20" border="0"> <tr> <td><p><font face="Calibri">Veja nossos artigos:</font></p> <p> </p> <p><font face="Calibri"> <?php $sql = "SELECT * FROM artigos_entrevistas WHERE publicado = 1 AND tipo = 1 ORDER BY data ASC"; $resultado = mssql_query($sql, $link) or die ("Não foi possível executar a consulta"); $nrecs = mssql_num_rows($resultado); $npages = ceil($nrecs/$pagessize); $npages++; $startrec = $pagessize * $pages; $n = 0; $s = 0; while ($linha=mssql_fetch_array($resultado)) { if(($n>=$startrec) &&($s<$pagessize)){ $id = $linha["id"]; $titulo = $linha['titulo']; echo "<p><a href='artigos_det.php?id=".$id."'><li>".$titulo."</li></p>"; $s++; } $n++; } ?> </tr> <tr> <td align="center"><?php if ( $pages > 0) { echo "<a href='".$PHP_SELF."?&pages=".($pages-1) ."' class=pg><b><font face=Calibri size=2> « Anterior</font></b></a>"; } else { echo "<font color=#CCCCCC face=Calibri size=2> « Anterior</font>"; } for($i=1;$i<$npages;$i++) { if ($pages == ($i-1)) { echo " <span class=pgoff><font face=Calibri color=#cf111111 size=2><strong> [$i]</strong></font></span> "; } else { $x = $i-1; echo " <a href='".$PHP_SELF."?&pages=$x' class=pg><b><font face=Calibri size=2> $i</font></b></a> "; } } if (($pages+2) < $npages) { echo "<a href='".$PHP_SELF."?&pages=".($pages+1)."' class=pg><b><font face=Calibri size=2> Próximo »</font></b></a>"; } else { echo "<font color=#CCCCCC face=Calibri size=2> Próximo »</font>"; } ?></td> </tr> </table>Obrigado desde já galera! Valeu!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.