![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Witam, Mam za zadanie wyswielac za pomoca wcisniecia przycisku submit (dalej lub wstecz) nazwy piosenek po kolei. One maja sie zapetlac tzn, jesli wcisne dalej to wyskoczy mi piosnka1, jesli wcisne znowu to ma juz byc piosenka2, a nie moge do tego dojsc... :/. Ciagle wysiwetlaja mi sie wszystkie 4. Oto moj kod:
<html> <head> <title>NieMa</title> <meta charset="UTF-8"> </head> <body> <form method="post"> <input type="submit" name="wstecz"> <input type="submit" name="dalej"> </form> </body> </html> <? $playlista = array( 1 => 'piosenka1', 2 => 'piosenka1', 3 => 'piosenka3', 4 => 'piosenka4', ); $dalej= $_POST['dalej']; $wstecz= $_POST['wstecz']; while ($i<5) { if ($dalej){ echo $playlista[$i]."\n"; $i++; } else { $i--; echo $playlista[$i]."\n"; } } Myslalam ze petla zatrzyma sie w momencie gdy uzytkownik ma wcisnac przycisk i poczek az go wcisnie i dopiero pojdzie dalej ta petla, lecz wychodzi na to ze uzytkownik moze ja wcisnac tylko raz i petla sie zapetla do momentu az i<5. Nie wiem czy mozna mnie zrozumiec, ale staram sie wytlumaczyc dosc prsoto ![]() Ten post edytował dolar 8.11.2016, 12:19:07 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Przycisk jest po stronie przeglądarki a kod PHP wykonuje się dużo wcześniej. Nie widać tu też nigdzie deklaracji zmiennej $i. Wysyłaj input type=hidden z aktualną piosenką.
-------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
$i=1;
while ($i<5) { if ($dalej) echo $playlista[$i]."\n"; $i++; } ok tutaj zmienilam, ale nie doszlam jeszcze z nauka do hidden, czy moglby mi ktos to wytlumaczyc? albo jak zapisac zeby ten kod dzialal? |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Może to coś Tobie wyjaśni zasadę działania formularzy i zmiennych POST.
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
Hmm podobno da sie to zrobic bez uzywania hidden - czy w moim kodzie nie da rady zrobic modyfikacji tak zeby dzialalo? Bo nie wiem w zasadzie czy szlam w dobrym kierunku nawet
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Opisz może jak rozumiesz interpretowanie skryptu php, a w szczególności pętli while?
Pętla while działa tak jak ją napisałaś i działa prawidłowo czyli po wciśnięcu przycisku dalej wysyła zmienną POST dalej do skryptu php wyświetla 4 elementy z tablicy. Równie dobrze mogłabyś to zapisać w ten sposób:
Bo zmienna dalej nie zmieni się przez inkrementacje zmiennej I Ten post edytował emstawicki 8.11.2016, 14:43:59 -------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 92 Pomógł: 0 Dołączył: 19.10.2016 Ostrzeżenie: (0%) ![]() ![]() |
hmm ja myslalam zeby to dzialalo w ten sposob:
Jesli uzytkownik wcisnie przycisk Dalej to wyswietli mi sie piosenka1, jesli ponownie bo wcisnie to wyswietli sie piosenka2 itd i analogicznie do przycisku Wstecz. Chcualam to zrobic na jednej tablicy to raz, a dwa rozumowalam tak, ze petla zatrzymuje sie w momencie kiedy uzytkownik ma wcisnac przycisk Dalej i czeka az go ktos wcisnie, a tutaj widze ze to tak nie dziala. Jak raz wcisnie to juz leci petla az do konca. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 378 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak ci pisałem, zacznij rozróżniać że PHP działa po stronie serwera i przeglądarka otrzymuje wynik jego działania. Parser już dawno skończył swoją pracę. To o czym mówisz możliwe jest w aplikacjach GUI pisanych np w Java albo JS.
-------------------- |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 207 Pomógł: 40 Dołączył: 2.06.2016 Skąd: Olsztyn Ostrzeżenie: (0%) ![]() ![]() |
Dokładnie jak @viking napisał. Po wczytaniu adresu internetowego przez przeglądarkę ze skryptem php uznajemy że skrypt się wykonał - jak amen w pacierzu.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.06.2025 - 02:59 |