Skocz do zawartości

Stronicowanie - Paginacja, jak zmienić [ 1 ] [ 2 ] [ 3 ] na [ 1 ] ... [ 3 ]


pafeu
 Udostępnij

Rekomendowane odpowiedzi

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 ]

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; 
}

Odnośnik do komentarza
Udostępnij na innych stronach

To nie jest takie proste jak się wydaje. Ale znając ilość rekordów możesz n od - do pominąć w wyświetlaniu w pętli...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

wszystkie gotowe rozwiązania są fajne ale chciałbym przy okazji poznać zasadę działania i przerobić krok po kroku tak więc proszę Was o pomoc w modyfikacji tego kodu aby uzyskać zamierzony efekt.

$tablica1 = glob ("*.*g");

$razem = count($tablica1); 
$na_stronie = "1";		 

$start = $_GET['start']; 
if( !isset($start) ) { $start = "0";  }  
$ta_strona = $start / $na_stronie + 1; 

$start_podstrony  = "0"; 
$podstrona = "1"; 

if( $start > 0 ) {
  $start_poprzedniej = $start - $na_stronie; 
  echo '<a href="stronicowanie.php?start=' . $start_poprzedniej  . '"><< Poprzednia</a>'; 
}

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; 
}

if( $start + $na_stronie < $razem  ) {
  $start_nastepnej = $start + $na_stronie; 
  echo '<a href="stronicowanie.php?start=' . $start_nastepnej  . '">Następna>></a>'; 
}

Edytowane przez pafeu
Odnośnik do komentarza
Udostępnij na innych stronach

@więc proszę Was o pomoc w modyfikacji tego kodu aby uzyskać zamierzony efekt.

Ale na czym ma polegać ta pomoc - na napisaniu za ciebie ? Musisz opracować algorytm i go wdrożyć samo się nie zrobi.

Pisałem NP "Ale znając ilość rekordów możesz n od - do pominąć w wyświetlaniu w pętli... "

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Jak już chcesz programować w PHP to radzę robić to obiektowo. Stwórz obiekt (a ściślej: klasę) który zajmie się paginacją a w samym szablonie umieść minimalną ilość kodu PHP.

Edytowane przez INOMan
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
 Udostępnij

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności