Jednou z velkých předností webu je možnost rozsáhlé interakce s uživatelem. Ta je v XHTML základním způsobem zajištěna pomocí odkazů, což by ale samo o sobě nestačilo. Proto obsahuje XHTML také takzvané formuláře, které pomocí základních prvků grafického uživatelského prostředí (GUI) umožňují komunikovat s uživatelem ve větší míře.

XHTML formuláře určitě znáte. Používáte je pokaždé, když zadáváte výraz k vyhledání, když si objednáváte zboží nebo když se na nějakém serveru registrujete. Formuláře zahrnují textová a zaškrtávací pole, rolovací seznamy, tlačítka… Takže jako uživatelé byste již věděli, co si pod pojmem XHTML formuláře představit. Co ale tyto prvky obnáší z pohledu XHTML?

Základní principy

Formulář je na stránce ohraničen elementem form (konkrétně tagy <form> a </form>). Uvnitř tohoto elementu se vyskytují již výše zmíněná textová a zaškrtávací pole, rolovací seznamy, tlačítka a také externí objekty – všechny tyto prvky souhrnně nazýváme ovládací prvky. Jejich vzhled závisí na prohlížeči a operačním systému uživatele, avšak vždy mají stejnou funkci.

Kromě ovládacích prvků se uvnitř formuláře samozřejmě mohou vyskytovat i další elementy, na které jste zvyklí, jako nadpisy, odstavce, seznamy a podobně. Jediný důvod, proč je třeba využívat element form, je, aby byly ovládací prvky uzavřeny v určitém konkrétním bloku a dalo se s nimi dále pracovat.

Všechny ovládací prvky, které se vyskytují v takovém bloku, tvoří formulář. Formulářů se může na stránce vyskytovat libovolné množství, ale jednotlivé formuláře se nesmí nacházet uvnitř sebe (nesmí být navzájem vnořeny).

Základním aspektem formuláře je, že může být odeslán. Tuto akci provede uživatel po tom, co nastaví jeho ovládací prvky na příslušné hodnoty (například vyplní heslo, e-mail, zvolí si jednu z nabízených možností a podobně). Po odeslání formuláře uživatelem vezme prohlížeč hodnoty ze všech ovládacích prvků, které náleží k danému formuláři (leží v daném elementu form), a požádá server o novou stránku (ta je pro každý formulář určena atributem elementu form) – k požadavku o tuto stránku navíc přidá hodnoty ovládacích prvků z daného formuláře.

Stránka, o kterou si prohlížeč takto požádá, je obvykle generována na serveru nějakým skriptem (PHP, ASP a další). Ten má k dispozici všechny hodnoty z ovládacích prvků formuláře a na jejich základě stránku vygeneruje – například prohledá databázi a předloží uživateli stránku s výsledky vyhledávání, ověří uživatelské jméno a heslo a předloží uživateli úvodní stránku systému…

Spojení s klientskými skripty

Právě popsaný způsob využití formulářů s sebou nese nutné přechody mezi stránkami a tím pádem i jisté zpoždění (než se pošle požadavek na server a ze serveru se nahraje stránka s odpovědí). V některých případech může být toto chování zbytečné a nežádoucí. Proto je možné využít formuláře i ve spojení s klientskými skripty, případně mezi sebou oba způsoby kombinovat.

V případě, že využijete k obsluze formuláře pouze klientské skripty, uživatel formulář neodesílá (takže ani prohlížeč neposílá žádný požadavek na server), ale místo toho se pouze spustí určitý (vámi daný) kód v nějakém skriptovacím jazyku. V prohlížeči tedy zůstane daná stránka s formulářem a odezva (změna obsahu či zobrazení stránky) je prakticky okamžitá.

Protože v tomto případě nejsou hodnoty ovládacích prvků odesílány na server, můžete i vypustit element form (nemá již žádný význam) a vkládat ovládací prvky do kódu stránky přímo.

Blíže k ovládacím prvkům

Každý ovládací prvek je určen svým jménem, které musí být jedinečné v rámci formuláře, ale ne již v rámci dokumentu. To znamená, že pokud máte na stránce dva formuláře, můžete u každého z nich použít ovládací prvek se stejným jménem. Toto jméno nemá nic společného se jménem daným atributem id!

Každý ovládací prvek má také svou výchozí hodnotu (například hodnota „text k hledání“, která se používá jako výchozí u textových políček pro vyhledávání). Na tu je nastaven po nahrání stránky, a pokud ji uživatel nezmění, je tato hodnota použita i při odeslání formuláře. Tuto hodnotu zároveň prvek získá při nastavení ovládacích prvků formuláře na výchozí hodnoty pomocí speciálního ovládacího prvku. Výchozí hodnotu, stejně jako jméno, nastavujeme my, autoři dokumentu.

Aktuální hodnota je hodnota, na kterou nastaví prvek uživatel. Dá se říci, že po nahrání stránky do prohlížeče je aktuální hodnota prvku nastavena na jeho výchozí hodnotu. Uživatel ji potom může změnit.

Blíže k odesílání formuláře

Jak už jsme si řekli, při odeslání formuláře jsou k požadavku o stránku přiloženy hodnoty ovládacích prvků, přičemž jsou vždy považovány za textové řetězce (to je důležité hlavně pro další zpracování ve skriptech).

Hodnoty ovládacích prvků mohou být v požadavku o stránku zařazeny buď jako součást výsledné URI adresy, nebo se mohou nacházet přímo v těle požadavku – to určujete pomocí jednoho z atributů elementu form. Oba způsoby předání mají svá pro a proti, o kterých si povíme příště.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Žádný příspěvek v diskuzi

Odpovědět