Formuláře jsou naprostým základem webových stránek, které chcete mít interaktivní, neboli chcete, aby bylo možné pracovat s odezvou uživatele.
Naprostým předpokladem je, že v tomto případě musíte mít alespoň základní znalosti HTML (XHTML) v oblasti tvorby formulářů a jejich prvků.
Formuláře a jejich parametry v HTML (XHTML)
Při vytváření jakéhokoliv formuláře HTML začínáme značkou <form>. Ta má několik dalších parametrů. Pro naše současné účely nám ovšem budou postačovat dva hlavní.
Prvním je parametr action
Ten určuje příjemce dat z formuláře. Pro nás to bude nějaký PHP skript, který bude schopen tyto údaje přijmout a zpracovat, popř. vypsat. O tomto parametru později.
Druhým veledůležitým parametrem je parametr method
Ten určuje, jakým způsobem se budou data z formuláře posílat. Zde se v praxi využívá prakticky pouze dvou metod a to je metoda post a get.
Abychom mohli data z formuláře odeslat, musíme k tomu vytvořit nějaký příkaz. Používá se odesílací tlačítko, které se tvoří vložením značky <input> s parametrem type=“submit“. To zařídí, že se všechna data odešlou do námi zadaného skriptu.
Typické použití formulářů vypadá asi takto:
<form action="mujskript.php" method="post"> <!-- datové položky formuláře --> <input type="submit" value="Odeslat data formuláře"> </form>
Dále si zkusíme do formuláře přidat textové pole, aby bylo co odesílat:
<form action="mujskript.php" method="post"> Jméno: <input type="text" name="jmeno"><br /> <input type="submit" value="Odeslat data formuláře" /> </form>
Nyní si vytvoříme kompletní jednoduchou webovou stránku s formulářem:
<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8"> <title>Jednoduchý formulář</title> </head> <body> <form action="vypis_dat.php" method="post"> Zadej svoje jméno: <input type="text" name="jmeno"><br /> <input type="submit" value="Odeslat data formuláře" /> </form> </body> </html>
Jak můžete z kódu vypozorovat, data mají být zpracovány souborem vypis_dat.php. Ten ovšem do této chvíle neexistuje. Proto si jej vytvoříme:
<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8"> <title>Zpracovaná data z formuláře</title> </head> <body> <?php $jmeno = $_POST['jmeno']; echo 'Vaše jméno je ', $jmeno; ?> </body> </html>
Aby se vám skutečně data z formuláře vypsaly, musí se tento soubor nacházet ve stejné složce jako je ten, ze kterého data odesíláte (pokud tedy nemáte zadanou jinou cestu k souboru, což v našem případě nemáme).
Ještě se zaměříme na předešlý kód. První řádek v PHP kódu je deklarace proměnné $jmeno, ke které je přiřazen záznam z odeslaného formuláře a to konkrétně s názvem jmeno. Jak vidíte je zde i zmíněna právě metoda zasílaných dat – $_POST. Pokud tedy odesíláte jednou metodou, nemůžete pro zpracování použít druhou metodu. Dnes se prakticky v 99% pracuje s metodou POST.
Rozdíly odesílacích metod:
Metoda GET | Metoda POST |
Neumí odeslat rozsáhlá data | Umí odesílat rozsáhlá data |
Odesílá data jako součást adresy URL | Odesílá data jinou cestou, než je adresa URL |
Formuláře s podmínkou
První příklad je zaměřen na formulář, u kterého přijímací skript ověřuje podmínku – zadání správného hesla. Nejprve tedy stránka s formulářem, do kterého musí uživatel napsat správné heslo:
<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8"> <title>Zadej prosím heslo</title> </head> <body> <h2>Pokud se chceš dozvědět podrobnosti o srazu, musíš zadat správné heslo</h2> <form action="vysledek.php" method="post"> Zadej heslo: <input type="password" name="heslo"><br> <input type="submit" value="Odeslat heslo"> </form> </body> </html>
Po spuštění se vyhodnocuje odeslaný výraz z formuláře v souboru vysledek.php takto:
<!DOCTYPE html> <html lang="cs"> <head> <meta charset="utf-8"> <title>Informace o srazu</title> </head> <body> <?php if ($_POST['heslo'] == 'lokomotiva') echo 'Sraz se bude konat zítra ve 3 hodiny u Tygra'; else echo 'Bohužel zadal jsi špatné heslo, nic se nedozvíš'; ?> </body> </html>
Skript je doplněn o podmínku if. Správné heslo je „lokomotiva“. Pokud jej tedy uživatel nezadá, nezobrazí se mu požadovaný text.
Pokuste se doplnit podmínku o další prvek, který je nutno správně do formuláře zadat.
Doplňte stránku frameworkem Bootstrap.