Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Stronicowanie - Paginacja, jak zmienić [ 1 ] [ 2 ] [ 3 ] na [ 1 ] ... [ 3 ]
pafeu
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 9.10.2011

Ostrzeżenie: (0%)
-----


linki do stron wyświetlają się w takiej formie:
[ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ]
jak zmienić kod aby rezultat wyświetlania wyglądał tak:
[ 1 ] [ 2 ] ... [ 5 ] [ 6 ]

Kod
while ( $start_podstrony < $razem ) {
   if( $podstrona == $ta_strona ) {
         echo ' [ <a href="stronicowanie.php?start=' . $start_podstrony . '"><b>' . $podstrona . '</b></a> ] ';
   } else {
         echo ' [ <a href="stronicowanie.php?start=' . $start_podstrony . '">' . $podstrona . '</a> ] ';
   }

   $start_podstrony  = $start_podstrony + $na_stronie;
   ++$podstrona;
}


Ten post edytował pafeu 27.02.2012, 16:13:42
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Uriziel01
post
Post #2





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

Ostrzeżenie: (0%)
-----


Czymś w stylu(oczywiście do dopracowania gdyż pisałem to na kolanie przez chwilę):
  1. <?PHP
  2. $razem = 13;
  3.  
  4. $start = $_GET['start'];
  5. if( !isset($start) ) { $start = "0"; }
  6. $result = array();
  7. if( $start > 0 AND $razem > 1) {
  8. $result[0] = '<a href="stronicowanie.php?start=' . ($start - 1) . '"><< Poprzednia</a>';
  9. }
  10. if( $start < $razem AND $razem > 1) {
  11. $result[$razem + 1] = '<a href="stronicowanie.php?start=' . ($start + 1) . '">Następna >></a>';
  12. }
  13. if ($razem > 1)
  14. {
  15. $result[1] = ' [ <a href="stronicowanie.php?start=1">1</a> ] ';
  16. $result[2] = ' [ <a href="stronicowanie.php?start=2">2</a> ] ';
  17. $result[3] = ' ... ';
  18. $result[$razem - 2] = ' ... ';
  19. $result[$razem - 1] = ' [ <a href="stronicowanie.php?start=' . ($razem - 1) . '">' . ($razem - 1) . '</a> ] ';
  20. $result[$razem ] = ' [ <a href="stronicowanie.php?start=' . $razem . '">' . $razem . '</a> ] ';
  21. if ($razem > 2)
  22. {
  23. $result[$start - 1] = ' [ <a href="stronicowanie.php?start=' . ($start - 1) . '">' . ($start - 1) . '</a> ] ';
  24. $result[$start] = ' [ <b>' . ($start) . '</b> ] ';
  25. $result[$start + 1] = ' [ <a href="stronicowanie.php?start=' . ($start + 1) . '">' . ($start + 1) . '</a> ] ';
  26. }
  27. }
  28. ksort($result);
  29. echo implode(' ', $result) . '<br/>';
  30. ?>

Rezultat:
(IMG:http://content.screencast.com/users/p.borecki90/folders/Jing/media/3229486f-cd4e-410c-89d6-4c2f72df5457/2012-02-27_2030.png)

EDIT:
Chociaż lepiej byś zrobił gdybyś opakował to w funkcje a nawet klasę dla łatwiejszego użycia w przyszłości. I uwierz mi że pod hasłem które ci podałem jest ogrom gotowych przykładów implementacji, choć wiem że umiesz korzystać z google'a to jednak powinieneś chyba lepiej sprawdzać otrzymywane wyniki.

Ten post edytował Uriziel01 27.02.2012, 20:32:24
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 02:01