Skocz do zawartości

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


pafeu

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

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.

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • 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