Formulář dodává stránce jistou „interaktivitu“. Polopaticky se to nechá vyložit tak, že formulář oživuje stránku a uživateli se zdá, že ten, kdo tu velí je on a né počítač... ;-) Předem musím říci, že použití formuláře na stránce se na 90% rovná použití nějakého skriptu (buď JavaScriptu nebo CGI skriptu), takže pokud o tom nic nevíte, bylo by dobré něco si o tom přečíst.
Z praktického hlediska je formulář prostředek k user-friendly zadávání parametrů CGI skriptu. Každý prvek formuláře, který použijete znamená jeden parametr do CGI skriptu. Nezáleží na tom, jakou metodou dáte uživateli vybrat, ale jaký bude výstup k CGI skriptu. Leckdy „shoříte“ na tom, že jste si špatně uvědomili předávanou hodnotu (tj. hodnotu, která se pošle skriptu), proto si vždy překontrolujte, co z každé volby plyne.
Základním příkazem, který (podobně jako příkaz <TABLE>
u tabulky) ohraničuje formulář je:
<FORM>
ACTION="adresa_skriptu" | Adresa skriptu, kterému se předá požadavek. Nemusí se jednat o skript (může být např.: mailto...), ale většinou tomu tak je. | ||||||
METHOD="metoda" | Určuje metodu předávání, tzn. kde budou parametry. Může nabývat následujících hodnot:
| ||||||
ENCTYPE="způsob_kódování" | Určuje metodu překódování (tzn. že všechna data projdou tímto filtrem,aby se zbavila nepřípustných znaků), kterou se data pošlou. Implicitní je application/x-www-form-urlencoded . Tato metoda zbaví řetězce znaků, tím, že je přeloží do svého kódu (např. mezeru přeloží jako %20 atd.) Pokud data nechcete kódovat, použijte metodu multipart/form-data nebo text/plain , toto kódování nemůže být použito s metodou GET (zničilo by URL...).
| ||||||
TARGET="jméno_rámu" | Určuje jméno rámu, kam se zobrazí výsledek. |
<FORM>
(tj. mezi příkazy <FORM>
a </FORM>
)!
<INPUT>
TYPE=typ_pole" | Určuje typ pole. viz. tabulka. |
NAME=jméno_pole | Určuje jméno pole. Tento parametr se odesílá skriptu ve tvaru jméno_pole=hodnota. |
VALUE=hodnota_pole | Určuje, jakou hodnotu má pole. Jestliže jde o pole textové, určuje parametr implicitní hodnotu pole. |
CHECKED | Určuje, zda je pole implicitně aktivováno (když se jedná o pole typu checkbox nebo radio ).
|
SIZE | Určuje šířku pole ve znacích. |
MAXLENGTH=počet_znaků | Maximální délka řetězce v poli (ve znacích). |
ALIGN="zarovnání" | Zarovnání, no comment... :-) |
<TEXTAREA>
NAME="jméno_pole" | Jméno pole. Tento parametr se odesílá skriptu ve tvaru jméno_pole=hodnota. |
COLS=počet_řádků | Určuje výšku pole v řádcích. |
ROWS=šířka_ve_znacích | Určuje šířku pole ve znacích. (počet sloupců) |
<SELECT>
<OPTION>
. Příkaz má následující parametry:
NAME | Jméno pole | ||
SIZE="počet_řádků" |
<OPTION>
<SELECT>
. Za tento příkaz se uvede popis, který se zobrazí uživateli ve tvaru: <OPTION >Popis pro uživatele
(ukončující příkaz se nemusí psát). Parametry:
VALUE=hodnota | Určuje hodnotu, která se předá skriptu. |
SELECTED | Pokud je uvedeno, hodnota bude implicitně vybraná (podobné jako parametry CHECKED příkazu <INPUT> .
|
Vzhled | Typ | Popis | ||||
---|---|---|---|---|---|---|
BUTTON | Tlačítko | |||||
CHECKBOX |
<HTML>
<HEAD>
<TITLE>Dotazník</TITLE>
</HEAD>
<BODY>
<P ALIGN=CENTER>
<H2> Dotazník </H2>
<P ALIGN=LEFT>
Prosím vyplňte tento dotazník:
<P>
<FORM ACTION="/cgi-bin/dotaznik" METHOD=POST>
Vaše jméno: <INPUT NAME=JMENO TYPE=TEXT SIZE=50><P>
Věk: <INPUT NAME=VEK TYPE=TEXT SIZE=3><P>
E-Mail: <INPUT NAME=EMAIL TYPE=TEXT SIZE=30><P>
<HR WIDTH=75%>
Používáte operační systém: <BR>
<INPUT NAME=OS TYPE=RADIO VALUE=MAC> MacOS <BR>
<INPUT NAME=OS TYPE=RADIO VALUE=UNIX> UNIX <BR>
<INPUT NAME=OS TYPE=RADIO CHECKED VALUE=WIN> Windows <BR>
<INPUT NAME=OS TYPE=RADIO VALUE=DOS> DOS <BR>
<INPUT NAME=OS TYPE=RADIO VALUE=JINY> Jiný <P>
Váš WWW browser je: <BR>
<INPUT NAME=BROWSER TYPE=RADIO CHECKED VALUE=NETSCAPE> Netscape Navigator <BR>
<INPUT NAME=BROWSER TYPE=RADIO VALUE=EXPLORER> Internet Explorer <BR>
<INPUT NAME=BROWSER TYPE=RADIO VALUE=MOSAIC> Mosaic <BR>
<INPUT NAME=BROWSER TYPE=RADIO VALUE=LYNX> Lynx <BR>
<INPUT NAME=BROWSER TYPE=RADIO VALUE=JINY> Jiný <P>
Chcete nám ještě něco vzkázat?<BR>
<TEXTAREA NAME=VZKAZ COLS=60 ROWS=5></TEXTAREA>
<P><HR WIDTH=75%><P ALIGN=CENTER>
<INPUT VALUE=Odeslat TYPE=SUBMIT>
<INPUT VALUE=Zahodit TYPE=RESET>
</FORM>
</BODY>
</HTML>