Formuláře
Nebudete-li pokračovat ve studiu PHP, můžete tuto kapitolu vynechat.
Odeslání dat formuláře prostřednictvím samotného html je takřka nepoužitelné. Prohlížeč k tomu potřebuje službu mailové aplikace v uživatelově počítači (např. Outlook), kterou ale v dnešní době většina uživatelů nepoužívá a nemá nastaveno její připojení k internetové síti. Vyplněná data tak zůstávájí navěky v neodeslané poště.
PHP umožňuje ukládat data do internetové databáze nebo je zasílat na mail prostřednictvím serverových funkcí.
Formulář - form
Formuláře slouží k zadávání dat. Data mohou být odeslána na server, kde jsou pomocí serverových skriptů, např. php (viz kapitoly o php) zpracována a uložena do databáze, nebo mohou být odeslána na mail. Před odesláním jsou data zpravidla zkontrolována pomocí skriptu (viz JavaScript).
- action - URL adresa stránky, která má data zpracovat
<form action="data.php" method="post"> <label>jméno:</label> <input type="text" name="jmeno"> <label>heslo:</label> <input type="password" name="heslo"> <input type="submit" value="Odeslat"> </form>
- method - způsob odeslání dat
- post - data nejsou připojena k URL adrese, tato metoda umožňuje odeslat větší objem dat
- get - data jsou připojena k URL adrese (název prvku = hodnota, oddělené znakem &)
Tato metoda není vhodná pro posílání osobních dat.
- post - data nejsou připojena k URL adrese, tato metoda umožňuje odeslat větší objem dat
- enctype - kódování dat
- applicatin/x-www-form-urlencoded - nezadáme-li typ kódování, je použit tento standardní typ - pro formuláře neodesílající soubory
- multipart/form-data - pro formuláře odesílající soubory
- text/plain - pro formuláře odesílající data na mail
Odeslaná data
Pro zpracování odeslaných dat jsou podstatné následující dva atributy prvků formuláře:
- name - název prvku (zadáváme bez diakritiky a bez mezer)
- value - hodnota prvku
Všechny prvky formuláře mohou mít další atributy:
- title - titulek - zobrazí se při najetí myši
- tabindex - pořadí prvku pro ovládání klávesou tabulátor
- accesskey - funkční klávesa pro aktivaci prvku
- id, class, style, atd.
Textové pole - input
<input type="text" name="jmeno" value="admin">
<input type="password" name="heslo" maxlength="10">
- type
- text - textové pole
- password - pro zadání hesla
- hidden - pro odeslání dat, která nejsou zobrazena, např. doplňující údaje z databáze
- value - obsah pole (nezadáme-li, bude pole prázdné)
- maxlength - maximální počet znaků, které lze zadat
Pro zobrazení kódu najeďte myší na pole formuláře:
Zaškrtávací pole - input
<input type="checkbox" name="EN" value="ano"> angličtina
<input type="checkbox" name="DE" value="ano"> němčina
<input type="checkbox" name="RU" value="ano"> ruština
- type
- checkbox - zaškrtávací pole
- checked
- checked="checked" - pole bude zaškrtnuté (nezadáme-li, nebude zaškrtnuté)
- value - hodnota, která bude odeslána, bude-li pole zaškrtnuto
Přepínače - input
<input type="radio" name="pohlavi" value="muž"> muž
<input type="radio" name="pohlavi" value="žena"> žena
- type
- radio - přepínací pole
- checked
- checked - přepínač bude vybraný
- value - hodnota, která bude odeslána, bude-li přepínač vybraný
Pole se seznamem - select, option
<select name="narodnost">
<option value="CZ">česká</option>
<option value="SK">slovenská</option>
<option value="NO">jiná</option>
</select>
Tento prvek je tvořen párovým tagem select, v němž jsou jednotlivé položky seznamu vymezeny tagy option.
- size - počet řádků seznamu (nezadáme-li, je seznam jednořádkový)
- multiple - umožňuje vybrat více položek seznamu
- selected (bez hodnoty) - atribut tagu option - tato položka seznamu bude označena
Skupiny voleb seznamu - optgroup
Víceřádkové textové pole - textarea
<textarea name="pripominky" cols="80" rows="4"></textarea>
- cols - šířka - počet znaků
- rows - výška - počet řádků
Textarea je párový tag, text je možné zadat mezi začátek a konec tagu:
Tlačítko - input
<input type="submit" value="Odeslat">
<input type="reset" value="Vymazat">
- type
- submit - tlačítko pro odeslání formuláře
- reset - tlačítko pro vymazání polí formuláře
- value - zobrazí se jako text tlačítka
Uspořádání prvků formuláře
- label - popisek - viz první ukázka
- fieldset - vytvoření orámovaných skupin prvků formuláře - viz předchozí ukázka
<fieldset> <legend>Pohlaví:</legend> <input type="radio" name="pohlavi" value="muž"> muž <br> <input type="radio" name="pohlavi" value="žena"> žena </fieldset>