Stronicowanie - Paginacja, jak zmienić [ 1 ] [ 2 ] [ 3 ] na [ 1 ] ... [ 3 ] |
Stronicowanie - Paginacja, jak zmienić [ 1 ] [ 2 ] [ 3 ] na [ 1 ] ... [ 3 ] |
27.02.2012, 16:07:16
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 -------------------- ommo.pl - oświetlenie led i nie tylko
|
|
|
27.02.2012, 16:51:47
Post
#2
|
|
Grupa: Zarejestrowani Postów: 307 Pomógł: 37 Dołączył: 9.11.2010 Skąd: Zielona Góra Ostrzeżenie: (0%) |
Było już wałkowane tyle razy:
http://lmgtfy.com/?q=paginacja+PHP |
|
|
27.02.2012, 17:00:10
Post
#3
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) |
Było już wałkowane tyle razy: http://lmgtfy.com/?q=paginacja+PHP wiem do czego służy google i uwierz mi, że najpierw szukałem a dopiero proszę o pomoc dodam, że paginację już mam zrobioną i działa dobrze teraz borykam się z problemem zmniejszenia ilości tych linków do podstron tak więc proszę o pomoc w tym konkretnym przypadku Ten post edytował pafeu 27.02.2012, 17:05:32 -------------------- ommo.pl - oświetlenie led i nie tylko
|
|
|
27.02.2012, 17:25:07
Post
#4
|
|
Grupa: Zarejestrowani Postów: 433 Pomógł: 64 Dołączył: 29.01.2011 Skąd: Warszawa Ostrzeżenie: (0%) |
No to sprawdz ile masz wszystkich stron [n] i wyswietl kolejno "[1] [2] ... [n-1] [n]"
Masz napisana paginacje- fajnie, ale skad mamy wiedziec w jaki sposob wyswietlasz wyniki? Wrzucasz je do tablicy, wyrzucasz w petli czy jak? Zrobiles sobie paginacje, a nie wiesz w jaki sposob wyswietlic wyniki? dziwnie to wyglada... -------------------- |
|
|
27.02.2012, 18:55:32
Post
#5
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) |
próbowałem zrobić tak jak piszesz ale nic mi z tego nie wychodzi - proszę o pomoc
a oto kod: Kod $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>'; } Ten post edytował pafeu 27.02.2012, 18:56:19 -------------------- ommo.pl - oświetlenie led i nie tylko
|
|
|
27.02.2012, 20:30:54
Post
#6
|
|
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ę):
Rezultat: 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 |
|
|
27.02.2012, 20:46:25
Post
#7
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Kiedyś zmontowałem taką klasę, która tworzy taką paginację, o którą dokładnie ci chodzi. Właściwie jest to moja pierwsza klasa. Pamiętam że trochę wzorowałem się na klasie @nospora. Kod możesz znaleźć pod adresem: https://gist.github.com/1926421
Używanie:
Samo utworzy ci linki, możesz zmienić ilość "stron" pomiędzy kropkami w taki sposób:
Domyślnie jest to 3. Możesz zmienić ilość wyświetlanych wierszy, domyślnie 40, a możesz to zrobić tak:
Możesz zmyślnie pobawić się linkami, np w twoim przypadku zrobić to "start":
Dodatkowo masz podane przykładowe style css, dzięki czemu możesz je sobie gdzieś do swoich styli dorzucić i zmienić według swoich potrzeb. Możliwości jest znacznie więcej, podałem tylko ich część. Wszystkie metody zwracają obiekt, dzięki czemu można się bawić w method chining, jeżeli ktoś tak woli:
Ważne abyś sobie w tej klasie usunął lub wymienił jedną linijkę:
Jest to dokładnie linia 61. Możesz cały warunek w metodzie setCurrentPage, wymienić na taki:
I cała metoda wyglądała by tak:
jeżeli nie odpowiada ci używanie klasy, ale chciałbyś nadal mieć tą paginacje oddzieloną "kropkami", to możesz podpatrzeć w metodzie getHtml, jak ja to robię, i podobnie wykonać u siebie. EDIT: zapomniałem wspomnieć, przypisanie danych musi odbywać się w kolejności: najpierw ustawiasz ile masz wszystkich "rekordów", następnie ustawiasz na jakiej jesteś stronie. Ten post edytował by_ikar 27.02.2012, 20:49:15 |
|
|
2.03.2012, 21:40:37
Post
#8
|
|
Grupa: Zarejestrowani Postów: 69 Pomógł: 0 Dołączył: 9.10.2011 Ostrzeżenie: (0%) |
Kiedyś zmontowałem taką klasę... wszystko pięknie działa ale z małym wyjątkiem: gdy jest wczytana pierwsza strona nie działa przycisk 'następny', na kolejnych już jest dobrze gdzie jest błąd? -------------------- ommo.pl - oświetlenie led i nie tylko
|
|
|
2.03.2012, 21:46:08
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 798 Pomógł: 307 Dołączył: 13.05.2009 Skąd: Gubin/Wrocław Ostrzeżenie: (0%) |
Pokaż kod, klasa działa, używam ją w sporej liczby miejsc, używa ją też kilka innych osób i to mogę ci powiedzieć, że działa pokaż kod jaki zmajstrowałeś, a ci powiem czy nie zrobiłeś czegoś źle.
|
|
|
Wersja Lo-Fi | Aktualny czas: 24.04.2024 - 14:28 |