Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML] Dwa przyciski - jeden formularz., Dwa przyciski typu submit.
L0k0
post 27.03.2012, 06:36:20
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ź.
Go to the top of the page
+Quote Post
pablo_83
post 27.03.2012, 07:37:08
Post #2





Grupa: Zarejestrowani
Postów: 200
Pomógł: 16
Dołączył: 11.01.2009
Skąd: wrocław

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


  1. <input type="submit" name="przycisk1" value="popraw"/>
  2. <input type="submit" name="przycisk2" value="dalej" />
  3.  


  1. if($_POST['przycisk1] == 'popraw'){
  2. echo 'wróć i popraw';
  3. }else {
  4. echo 'idź dalej';
  5. }
  6.  


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ć.
Go to the top of the page
+Quote Post
L0k0
post 27.03.2012, 08:27:18
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
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 Wersja Lo-Fi Aktualny czas: 27.04.2025 - 08:13