No último post, eu publiquei um sistema de paginação usando números. Hoje vamos acrescentar links de "próximo", "anterior", "primeiro" e, "último". Com esses links a navegação fica mais fácil. Ou também porque tem gente que gosta de clicar em próximo do que nos números. Vamos lá:
Antes de tudo, temos que saber em que página o usuário está para que possamos exibir os links. Se o usuário estiver na primeira página, não será conveniente mostrar o link "primeira" e/ou "anterior" pois isso poderia dar um erro e/ou então não mostrar nada.
Lógica:
1º - "Pegar" a página que o usuário está;
2º - Se estiver na primeira, mostre "próxima" e "última";
3º - Se estiver em uma maior que a primeira, mostre "primeira", "anterior", "próxima" e, "última";
4º - Se estiver na última, mostra "primeira" e "anterior";
Mas não é só isso. Como o indice começa com "0", quando o usuário está na segunda página e clica em "anterior", o indice fica "1", omitindo assim, o primeiro registro que seria "0". Para isso acresentaremos mais um "if".
$prox_indice = $indice+10; // Pega o valor do indice e aumenta 10 para gerar o indice do link "próximo";
$ants_indice = $indice-10; // Pega o valor do indice e diminui 10 para gerar o indice do link "anterior";
$y = $x-10; // Retira 10 de $x pois quando essa variável sai do loop ela fica com o valor do último indice mais 10;
1º - "Pegar" a página que o usuário está;
if($indice == "0"){ // 2º - Se estiver na primeira, mostre "próxima" e "última";
echo("<a href='$PHP_SELF?indice=11'>Próximo ></a>");
echo("<a href='$PHP_SELF?indice=$y'>Último >|</a>");
}
if($indice >= "11"){ // 3º - Se estiver em uma maior que a primeira, mostre "primeira", "anterior", "próxima" e, "última";
if($indice == $y){ // 4º - Se estiver na última, mostra "primeira" e "anterior";
echo("<a href='$PHP_SELF?indice=0'>|< Primeiro</a>");
echo("<a href='$PHP_SELF?indice=$ants_indice'>< Anterior</a>");
exit;
if($indice == "11"){ // Como o indice começa com "0", quando o usuário está na segunda página e clica em "anterior", o indice fica "1", omitindo assim, o primeiro registro que seria "0";
echo("<a href='$PHP_SELF?indice=0'>|< Primeiro</a>");
echo("<a href='$PHP_SELF?indice=0'>< Anterior</a>");
echo("<a href='$PHP_SELF?indice=$prox_indice'>Próximo ></a>");
echo("<a href='$PHP_SELF?indice=$y'>Último >|</a>");
exit;
}
}
echo("<a href='$PHP_SELF?indice=0'>|< Primeiro</a>");
echo("<a href='$PHP_SELF?indice=$ants_indice'>< Anterior</a>");
echo("<a href='$PHP_SELF?indice=$prox_indice'>Próximo ></a>");
echo("<a href='$PHP_SELF?indice=$y'>Último >|</a>");
}
É isso ai. Dê uma incrementada com HTML e CSS e tudo estará bem. Adicione esse código abaixo do loop "for" do código anterior .
sábado, 26 de abril de 2008
Sistema de Paginação com links próximo, anterior, primeiro, último
Assinar:
Postar comentários (Atom)
0 comentários:
Postar um comentário