Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Metody GET i POST - użycie obydwu na raz
Forum PHP.pl > Forum > Przedszkole
JanMatuszak
Witam!
Projektuję sobie coś na wzór formularza i generatora z obrobionych danych.

np.
Krok 1. Dodaj dane personalne ucznia
Krok 2. Dodaj dane personalne rodzica
Krok 3. Utwórz rekord w bazie
Krok 4. Obrób dane
Krok 5. Wyślij mail

Napisałem sobie poszczególne kroki swojego "kreatora" i teraz chciałbym to złączyć w całość. Przyjąłem (chyba błędnie) że zrobię to od szczegółu do ogółu.
Wymyśliłem sobie, że dane z formularza, będę sadził do php metodą POST, ale.... skakanie pomiędzy kolejnymi krokami zrealizuję w jednym pliku i przeskakiwał sobie do kolejnych części formularza metodą GET. Czy to jest w ogóle możliwe aby GET i POST wykorzystać za jednym zamachem?
Czy tak się to robi? Proszę o pomoc.
SmokAnalog
Tak, jest to możliwe. Wystarczy po prostu ustawić query string w action formularza, np.:

  1. <form action="bubu.php?widok=rodzic" method="post">


Jeśli linkujesz do tego samego pliku w którym jest formularz, to możesz podać sam query string:

  1. <form action="?widok=rodzic" method="post">


Czy tak się robi? Można. To jedna z wielu możliwości. Ja osobiście nie lubię wyświetlać czegokolwiek na POST, bo odświeżanie generuje ten alert o ponownym wysłaniu danych. Z drugiej strony, może ten alert jest przydatny? Każdy może mieć inne zdanie.

Możesz też rozważyć coś, co w sumie może uprościć cały proces i polepszyć user experience. Mógłbyś mieć jeden wielki formularz i tylko JavaScriptem pokazywać kolejne kroki.
JanMatuszak
Panie Smoku...
Dziękuję za odpowiedź. No dobrze.... Sprawdzimy
dublinka
Cytat(JanMatuszak @ 30.10.2020, 23:37:35 ) *
Witam!
Projektuję sobie coś na wzór formularza i generatora z obrobionych danych.

np.
Krok 1. Dodaj dane personalne ucznia
Krok 2. Dodaj dane personalne rodzica
Krok 3. Utwórz rekord w bazie
Krok 4. Obrób dane
Krok 5. Wyślij mail

Napisałem sobie poszczególne kroki swojego "kreatora" i teraz chciałbym to złączyć w całość. Przyjąłem (chyba błędnie) że zrobię to od szczegółu do ogółu.
Wymyśliłem sobie, że dane z formularza, będę sadził do php metodą POST, ale.... skakanie pomiędzy kolejnymi krokami zrealizuję w jednym pliku i przeskakiwał sobie do kolejnych części formularza metodą GET. Czy to jest w ogóle możliwe aby GET i POST wykorzystać za jednym zamachem?
Czy tak się to robi? Proszę o pomoc.

Robi. Zrob to sobie na switch()
Majac jakies ID w formularzu mozesz sobie "skakac" pomiedzy danymi "case". Dodatkowo w kazdym case dodawaj ukryte pole hidden z jskas wartoscia i po wykonanym skoku sprawdz czy skok byl wykonany z konkretnego miejsca.
Czyli na samym poczatku warunek czy cos w parametrze jest przekazywane jesli nie to pokazujesz krok 1

(!isset($_GET['step'])) ? $_GET['step'] = '1' : $_GET['step']= $_GET['step'];

switch($_GET['step'[):

case('1'):

// formularz ktory chcdesz pokazac z polem hidden name=s value=1
<form action=$_SERVER['SCRIPT_NAME'] . "?id=2" method=post>
break;


case('2'):
if($_POST['s']!=1)exit('blad');
// formularz ktory chcdesz pokazac z polem hidden value=2
<form action=$_SERVER['SCRIPT_NAME'] . "?id=3">
break;

case('3'):
if($_POST['s']!=2)exit('blad');
// formularz ktory chcdesz pokazac z polem hidden value=2
<form action=$_SERVER['SCRIPT_NAME'] . "?id=4">
break;

default:
header("location:" . $_SERVER['SCRIPT_NAME']):
exit;
endswitch;

Cos w ten desen
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.