HTML formulář je konstrukce v HTML dokumentu, která umožňuje uživateli vkládat nějaká data, která mohou být následně odeslána ke zpracování WWW serveru; uživateli se může zobrazit podobně jako klasický úřední formulář s různými políčky k vyplnění, zaškrtnutí apod.

Princip

editovat

Jednoduchý HTML formulář může vypadat následovně:

<form action="nejake_URL" method="post">
Jméno: <input type="text"   name="jmeno" > <br />
  muž: <input type="radio"  name="sex" value="M"> <br />
 žena: <input type="radio"  name="sex" value="F"> <br />
       <input type="submit" name="ok"  value="Odešli">
</form>

Celý formulář je ohraničený párovými značkami <form>...</form>; attribut action obsahuje odkaz na nějaký soubor se skriptem, který po vyplnění našeho formuláře převezme vložené údaje, něco s nimi provede a poté vrátí nějaký výsledek opět ve tvaru nějakého HTML dokumentu.

Formulář obsahuje značky <input>, které reprezentují různé typy zadávaných údajů, v našem ukázkovém případě: nějaký text (type="text"), možnost výběru ze dvou hodnot (type="radio") a tlačítko pro odeslání (type="submit"). Attributy name jsou názvy proměnných, kterým budou přiřazeny odpovídající hodnoty: proměnná "jmeno" obdrží vyplněný text a proměnná "sex" obdrží jednu z hodnot "M" či "F".

Takový formulář se v prohlížeči zobrazí formou prázdného políčka pro vyplnění jména a dvou "čudlíků" na výběr, jestli se jedná o muže či ženu. Pod tím se zobrazí tlačítko s nápisem "Odešli", po jehož odkliknutí si prohlížeč vyžádá stránku s adresou nejake_URL, při kterémžto požadavku odešle proměnné jmeno a sex s uživatelem vyplněnými hodnotami.

Form Builder

editovat

Vytváření složitějších formulářů mohou usnadňovat různé buildery, tj. generátory příslušného HTML kódu.

Buildery na různých serverech – není nutné nic instalovat:

MojoHel

editovat

Mojolicious Form Builder

Vytváří formulář přetahováním příslušných políček myší.

Perlovské moduly, které generují HTML formuláře – typicky používané jako CGI skripty.

CGI::FormBuilder

editovat

Vygenerovaný HTML kód obsahuje i JavaScript pro kontrolu obsahu polí. Umožňuje používat i Templates z jiných modulů:

  • HTML::Template
  • Template
  • Text::Template
  • CGI::FastTemplate
  • CGI::SSI
  • CGI::Session