![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 10.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Problem jest pewnie błahy. No ale nie wiem jak sobie poradzić (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Otóż:[php:1:33cbe85d1d]<? echo ($_GET['intPg'] == 0) ? '« |' : '<a href="index.php?page=ksiega&pg='. ($_GET['intPg'] - 1) .'" class="white">«</a> |';//wyświetlanie odnośnika "wstecz" for($p = 0; $p < ( $intCnt / $intEPP ); $p++) { echo $p == $_GET['intPg'] ? ' <b><font style="color: #97A5C4">' . ( $p + 1 ) . '</font></b> |' : ' <b><a href="index.php?page=ksiega&pg=' . $p . '" class="white">' . ( $p + 1 ) . '</a></b> |'; } $intLastPg = $intCnt / $intEPP; $lastPg = explode(".", $intLastPg); echo ($_GET['intPg'] == $lastPg[0]) ? ' »' : ' <a href="index.php?page=ksiega&pg='. ($_GET['intPg'] + 1) .'" class="white">»</a>';//wyświetlanie znacznika "dalej" ################# # zmienne: # $_GET['intPg'] - zmienna pochodząca z linku od stron 1 | 2 | 3.... # $intCnt = 270 (wszystkie linie z pliku *.dat) # $intEPP = 30 (limit wyświtalania wpisów na stronę) ################# ?>[/php:1:33cbe85d1d] Teraz problem pojawia się podczas wyświetlania odnośnika ">>" (raquo), dla przykładu podałem liczbę 270 która jest podzielna przez 30. Kod polega na tym że gdy jesteśmy na stronie pierwszej lub ostatniej znacznki kolejno dla strony pierwszej - wstecz oraz dla strony ostatniej - dalej nie są dostępne. Znacznik "<<" (laquo) - wstecz działa dobrze, lecz problemy pojawiają odnośnikiem ">>" (raquo) - dalej. Poniważ wtedy dzieli wartość 270 przez 30 wynik jest 9. I fragment: [php:1:33cbe85d1d]<?php $intLastPg = $intCnt / $intEPP; $lastPg = explode(".", $intLastPg); echo ($_GET['intPg'] == $lastPg[0]) ? ' »' : ' <a href="index.php?page=ksiega&pg='. ($_GET['intPg'] + 1) .'" class="white">»</a>';//wyświetlanie znacznika "dalej" ?>[/php:1:33cbe85d1d] nie moze tego przetrawić, czyli jesteśmy na ostatniej stronie a odnośnik ">>" jest dalej dostępny czyli prznosi nas na kolejną stronę, której w rzeczywistości nie ma. |
|
|
![]() |
![]()
Post
#2
|
|
Administrator serwera Grupa: Developerzy Postów: 521 Pomógł: 13 Dołączył: 2.04.2004 Skąd: 52°24' N 16°56' E Ostrzeżenie: (0%) ![]() ![]() |
Sprobuj w ten sposob ze dasz zapytanie if do generowania odnosnikow, np. jesli jest pierwszy to ma dac normalny tekst a jesli ostatni to tez normalny tekst:
[php:1:1c8fb6a8d3]<?php $liczba_stron="27"; $page=$_GET['page']; $ilosc="9"; $ilepodstron=ceil($liczba_stron/$ilosc); //poprzednia if($page>1){ //tutaj jesli nie jest pierwsza strona } else { //tutaj jesli jest pierwsza strona } //lista stron for ($i=1; $i<=$ilepodstr; $i++) { if ($i==$page){ //tutaj jesli strona jest aktualnie wyswietlana } else { //tutaj jesli strona nie jest aktualnie wyswietlana } } //nastepna if($page<$ilepodstr){ //tutaj jesli nie jest ostatnia strona } else { //tutaj jesli jest ostatnia strona } ?>[/php:1:1c8fb6a8d3] Zmienna ilosc okresla ilosc wyswietlanych elementow na danej stronie, a zmienna $ilepodstr oblicza ile wychodzic powinno stron do wyswietlenia wynikow dzielac i zaokraglajac w gore 8) Licze ze zmienisz sobie sam kod do swoich potrzeb(nazwy zmiennych i ich wartosci) bo mi sie nie chce pisac (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif) |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 32 Pomógł: 0 Dołączył: 10.06.2004 Ostrzeżenie: (0%) ![]() ![]() |
Done (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Dla zainteresowanych kod wygląda następująco[php:1:543c28951d]<?php $intCnt = count( $arrLines ); $intEPP = 30; $getPg = $_GET['pg']; $intFrom = ($getPg - 1) * $intEPP; $intTo = $intFrom + $intEPP; if( $intFrom > $intCnt ) $intFrom = $intCnt; if( $intTo > $intCnt ) $intTo = $intCnt; echo "<center>"; echo ($getPg > 1) ? '<a href="index.php?page=ksiega&pg='. ($getPg - 1) .'" class="white">«</a> |' : '« | '; $ceil = ceil( $intCnt / $intEPP ); for($p = 1; $p <= $ceil; $p++) { echo $p == $getPg ? '<b><font style="color: #8E6338">' . $p . '</font></b> | ' : ' <b><a href="index.php?page=ksiega&pg=' . $p . '" class="white">' . ( $p ) . '</a></b> | '; } echo ($getPg < $ceil) ? ' <a href="index.php?page=ksiega&pg='. ($getPg + 1) .'" class="white">»</a>' : ' »'; echo "</center>"; ?>[/php:1:543c28951d] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 26.08.2025 - 00:08 |