Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Metody GET i POST - użycie obydwu na raz
JanMatuszak
post 31.10.2020, 00:37:35
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


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.
Go to the top of the page
+Quote Post
SmokAnalog
post 31.10.2020, 01:13:44
Post #2





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


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.
Go to the top of the page
+Quote Post
JanMatuszak
post 31.10.2020, 09:06:12
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.10.2020

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


Panie Smoku...
Dziękuję za odpowiedź. No dobrze.... Sprawdzimy
Go to the top of the page
+Quote Post
dublinka
post 31.10.2020, 14:34:26
Post #4





Grupa: Zarejestrowani
Postów: 594
Pomógł: 66
Dołączył: 22.02.2008
Skąd: Dublin

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


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

Ten post edytował dublinka 31.10.2020, 14:35:28


--------------------
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: 23.04.2024 - 19:52