![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 4 Dołączył: 18.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, prawdopodobnie będzie to dość proste pytanie, jednakże drugi dzień ślęczenia nad tym zaczyna mnie irytować.
Mam formularz i do niego dwa przyciski: 'Wróć i popraw' oraz 'Sprawdź poprawność' czyli 'załaduj stronę poprzednią' i 'załaduj stronę następną'. Nie wiem po czym sprawdzić, który został kliknięty. Próbowałem kilka sposobów - wszystkie zawiodły... Kod nagłówka formularza i jedno z moich rozwiązań: Kod <form id="formID" action="index.php?page=<?php if ($_POST['przycisk'] == "przycisk_1"){ echo "strona_1"; } else { echo "strona_2";} ?>" method="POST"> Przyciski: Kod <button style="float:left; border:1px; border-style: solid; " type="submit" class="regular" name="przycisk" value="przycisk_1"> <img src="gfx/formularze/back.gif" alt=""/> Wczytaj ponownie </button> <button style="float:right; border:1px; border-style: solid; margin-bottom: 10px;" type="submit" class="positive" name="przycisk" value="przycisk_2"> <img src="gfx/formularze/form.png" alt=""/> Sprawdź poprawność </button> Proszę o podpowiedź. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 16 Dołączył: 11.01.2009 Skąd: wrocław Ostrzeżenie: (0%) ![]() ![]() |
w if'ach robisz akcje dla konkretnego wywołania. w action w formularzu deklarujesz gdzie formularz ma wyslać dane, $_POST[] jest przechwytywany po stronie serwera po wykonaniu formularza, więc albo tworzysz sobie dwie strony z formularzem i w zależności który został kliknięty poprzez instrukcję powyżej przekierowujesz do niego, albo atrybut action zostawiasz pusty wtedy po kliknięciu w submit formularz wróci do tej samej strony a w if'ach deklarujesz co chcesz wyświetlić. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 161 Pomógł: 4 Dołączył: 18.03.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki za odpowiedź.
Sytuacja wygląda tak, że jak zrobiłem jak pokazałeś to po wciśnięciu przycisku (któregokolwiek) mam w pasku adresu index.php?page= i nic więcej. Natomiast jeśli zamiast == zmienię na != to dzieła (oczywiście dla jednego przycisku). Biorę konkretne name i value - z dobrego przycisku. Sprawdziłem kilkukrotnie. Nie wiem dlaczego nie widzi w ogóle tych danych przekazywanych POST'em... Rozwiązałem to tak: pole name musi być takie samo, żeby posłużyć się value to name musi być takie samo. Kod if ((!empty($_POST)) && $_POST['sprawdz_poprawnosc'] == 'bezpieczna_gotowka') { header('Location:index.php?page=bezpieczna_gotowka_sprawdz'); } else if((!empty($_POST)) && $_POST['sprawdz_poprawnosc'] == 'wroc') { header('Location:index.php?page=formularz_main'); } A w przyciskach mam: Kod <button style="float:left; border:1px; border-style: solid; " type="submit" class="regular" name="sprawdz_poprawnosc" value="wroc"> <img src="gfx/formularze/back.gif" alt=""/> Wczytaj ponownie </button> <button style="float:right; border:1px; border-style: solid; margin-bottom: 10px;" type="submit" class="positive" name="sprawdz_poprawnosc" value="bezpieczna_gotowka"> <img src="gfx/formularze/form.png" alt=""/> Sprawdź poprawność </button> Może ktoś skorzysta :-) Temat do zamknięcia. Ten post edytował L0k0 27.03.2012, 08:27:57 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 27.04.2025 - 08:13 |