Jako formulář můžeme označit vše, pomocí čeho je možné odesílat na server informace. Skládá se tedy z různých vstupních polí, zaškrtávacích políček, vysouvacích nabídek a tlačítek. Těm se souhrnně říká ovládací prvky. Pomocí formulářů je možné získat od uživatele data a s nimi dál pracovat (anketa, registrace na fóru, změna hesla...). Data získaná z formulářů pak zpracovává nějaký klientský nebo serverový skript.
Celý formulář (všechny ovládací prvky) je ohraničen elementem <form>. Ten musí povinně obsahovat atribut action, jehož hodnotou je nějaká webová stránka. Na ní se zadaná data odešlou a ona je zpracuje. V praxi se dost často formulář odkazuje na tu samou stránku ve které je obsažen.
Dalším často používaným atributem je method, který udává, jak budou data odeslána. V případě method="get" jsou data odesílána spolu s adresou stránky. Ta pak může vypadat třeba následovně: http://www.adresa.cz/index.htm?jmeno=Petr za otazníkem jsou informace které uživatel vyplnil a odeslal. Pokud se informací odesílá více, oddělí se ampersandem ("&").
Názorně si to můžete zkusit na tomto formuláři:
Druhou variantou je method="post". V tom případě se data odesílají v požadavku HTTP hlavičky a nejsou tedy vidět v adrese požadované stránky. Toho se využívá zejména při odesílání hesla nebo delších textů.
Element <form> může obsahovat jakékoliv prvky kromě dalšího <form>. Nesmí se tedy vnořovat jeden do druhého. Obsahem také nemůže být rovnou text - musí se vnořit například do odstavce (<p>).
Nejčastěji používaný je element <input />. Jeho atribut type pak určuje, o jaký konkrétní ovládací prvek se bude jednat. Dále musí jako každý jiný ovládací prvek obsahovat atribut name, který je jedinečný v celém elementu <form>. Na stránce se však může vyskytovat jiný formulář obsahující elementy se stejným atributem name.
type="text"
Jedná se o výchozí hodnotu (pokud není nastaven atribut type). Zobrazí vstupní pole určené pro zadávání textu. Pokud obsahuje atribut value, bude jeho obsah zobrazen jako výchozí hodnota.
<input type="text" name="barva" value="červená" />
type="password"
To samé jako type="text", ale zadávaný text se nezobrazí. Místo něj je každý znak nahrazen kolečkem nebo hvězdičkou (záleží na prohlížeči).
<input type="text" name="heslo" />
type="checkbox"
Vytvoří zaškrtávací políčko. Těch může být označeno hned několik nebo nemusí být vybráno žádné (narozdíl od type="radio"). Již předem zatržené políčko je možné vytvořit pomocí atributu checked="checked". Nezaškrtnutá políčka se vůbec neodesílají.
<p><input type="checkbox" name="zluta" value="ano" />Žlutá</p> <p><input type="checkbox" name="zelena" value="ano" checked="checked" />Zelená</p>
type="radio"
Je něco podobného jako type="checkbox". V tomto případě je ale možné vybrat jen jednu možnost. Všechny elementy <input /> zde proto mají stejný atribut name, jelikož se odešle pouze hodnota u zaškrtnuté možnosti.
<p><input type="radio" name="barva" value="zluta" /> Žlutá</p> <p><input type="radio" name="barva" value="zelena" /> Zelená</p> <p><input type="radio" name="barva" value="cerna" checked="checked" /> Černá</p>
type="submit"
Vytvoří odesílací tlačítko, které odešle celý formulář. Hodnota atributu value se zobrazí jako nápis na tlačítku.
<input type="submit" value"potvrdit" />
type="reset"
Tlačítko, které nastaví všechny hodnoty ve formuláři na výchozí.
<input type="reset" value="vymazat formulář" />
type="hidden"
Skrytý ovládací prvek, o kterém uživatel vůbec neví. Používá se většinou pro odesílání některých informací nutných pro správný chod skriptu, který bude formulář zpracovávat. Jako atributy připadají v úvahu pouze name a value.
Druhým používaným formulářovým elementem pro zadání textu je <textarea>. Ten služí pro vkládání větších bloků textu. Je párový a jeho obsah se zobrazí jako výchozí hodnota. Povinně se u něho musí uvádět atribut rows, udávající počet viditelných řádek (pokud je jich víc, lze skrolovat) a atribut cols, který udává počet sloupců. Jeden sloupec je zde definován jako šířka průměrného znaku.
<textarea rows="7" cols="40" name="text"> Výchozí text. </textarea>
< Předchozí Následující >
© 2006-2007 Petr Kuda - www.troska.cz