Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zmienna ,Stronnicaowanie doklejenie
kielich
post
Post #1





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


Witam mam mały problem na który nie ma pomysłu mianowicie ,

Zrobiłem sobie paginacje i mam sobie w tablicy liczbe podstron

np cos takiego.

  1. [0] => 1 , [1] => 2 , [2] => 3, [3] => 5, [4] => 6


po przetworzeniu wszystko mam jak chce
czyli 1,2,3,4,5 (linki do podstron )
ale potrzebuje mieć np. tak

1,2,...,5

kiedy bedę na 5 to będę miał np
6,7,...,10

Chodzi mi po prostu jak dokleić te kropki


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Pilsener
post
Post #2





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


  1. function tresc_pasek($l_odp,$l_odp_nastronie,$l_odp_napasku,$a) { //funkcja tworząca nawigację
  2. $l_odp_podz = intval($l_odp/$l_odp_nastronie)+1;
  3. $l_odp_podz_mod = $l_odp%$l_odp_nastronie;
  4. if($l_odp_podz_mod>0){++$l_odp_podz;}
  5. if($a>=$l_odp_podz){$a=$l_odp_podz-1;}
  6. if($a>1){$tablica['prev']=$a-1;}else {$tablica['prev']=0;}
  7. if($a<=$l_odp_napasku){$koniec=$l_odp_napasku*2+2;}else{$koniec=$a+$l_odp_napasku+1;}
  8. if($a<=$koniec-$l_odp_napasku){$star=$a-$l_odp_napasku;}
  9. if($a>=$l_odp_podz-$l_odp_napasku){$star=$l_odp_podz-$l_odp_napasku*2-1;}
  10. if($koniec>$l_odp_podz){$koniec=$l_odp_podz;}
  11. if($star<1){$star=1;}
  12. for($i=$star;$i<$koniec;++$i){
  13. if($i<$a){$tablica[]=$i;}
  14. if($i==$a){$tablica['active'] = $i;}
  15. if($i>$a){$tablica[]=$i;}
  16. }
  17. if($a<$l_odp_podz-1){$tablica['next']=$a+1;}else{$tablica['next']=0;}
  18. return $tablica;
  19. }
  20. ]
- użyj takiej funkcji, funkcja zwraca numery stron w postaci tablicy, z zaznaczeniem następnej, poprzedniej i aktywnej, jak to wyświetlisz i połączysz kodem HTML to już Twoja sprawa. Krótki opis parametrów: 1 - liczba rekordów, 2- liczba rekordów na jedną stronę, 3- rozmiar tablicy stron (szerokość paska nawigacyjnego), 4- numer aktualnej strony.

Kiedyś znalazłem tą funkcję na tym forum i trochę ją ulepszyłem.
Go to the top of the page
+Quote Post
thek
post
Post #3





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




@Pilsener... Trochę przypomina moją, ale ma bardziej zamotaną strukturę winksmiley.jpg
Najprościej będzie autorowi jeśli zrobi tak, że będzie miał zmienne
  1. $aktualna - obecna strona paginacji;
  2. $elementy - liczba wszystkich elementów;
  3. $na_strone - liczba elementów na stronie;

I całość działań to:
  1. $stron = ceil( $elementy/$na_strone );

1. Jeśli $stron = 1 to odpuść wyświetlanie paginacji sobie
2. Jeśli $stron > 1 to:
a) Sprawdź czy $aktualna jest inna niż pierwsza (może to być 0 lub 1, zależnie jaką przyjąłeś ) i jeśli tak to zrób link do "Pierwsza" i "Poprzednia"
cool.gif W pętli w jakimś zakresie od strony X do Y:
- sprawdzaj czy strona pętli jest większa od 0 i mniejsza od $stron, bo tylko takim możesz utworzyć linki,
- jeśli strona w pętli jest równa $aktualna, to ja jakoś oznacz,
c) Sprawdź czy $aktualna jest inna niż ostatnia ($stron ) i jeśli tak to zrób link do "Następna" i "Ostatnia"
Kluczem jest tu zdefiniować X i Y. U Ciebie X to aktualnie wybrana strona a Y to "szerokość w prawo"
Chyba potrafisz tak napisać pętlę FOR by to zaakceptowała? smile.gif


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
Go to the top of the page
+Quote Post
kielich
post
Post #4





Grupa: Zarejestrowani
Postów: 442
Pomógł: 4
Dołączył: 28.12.2008
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


thek no ja mam identycznie tak jak napisałeś ale nie wiem jak zrobić te "kropki" zeby nie wyswietlac np 50 podstron i mieć kilka pierwszych i ostatnie np.

1,2,3,4,5,.....47,48,49,50


--------------------
Życie jest jak SESJA kiedyś wygaśnie ....

Jeśli moja odpowiedź jakoś Cię nakierowała lub pomogła kliknij Pomógł
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 17:37