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.