Formuláre www stránok

Pre vytvorenie formulara musime urcit blok FORM:

FORM METHOD="post | get" ACTION="url://cesta/subor" [ENCRYPTED]

kde:

METHOD definuje metodu spracovania formulara (POST znamena, ze vysledok formulara sa nam posle ako mail, GET znamena, ze vystup formulara sa "prilepi" za cestu k dokumentu v tvare:
ACTION?premenna1=hodnota1&premenna2=hodnota2... a nastavia sa niektore environmentalne premenne, z ktorych najdolezitejsia je QUERY_STRING obsahuje ten isty vystup z formulara v tom istom tvare.

ACTION je tvaru "mailto:login@adresa" (ak pouzijeme POST) alebo cestu k CGI, ktore pouzijeme na spracovanie vystupu formulara (ak pouzijeme GET). CGI musi byt napisane v niektorom z jazykov podporovanych nasim http-daemonom (shell, C, perl a ine, zalezi od programu).

ENCRYPTED urcuje, ze vysledok formulara bude posielany v kodovanom tvare (v praxi som este nepouzil - skuste sami alebo pockajte, kym to sem doplnim ;-)


Samotne polozky formulara definujeme tymito prikazmi (funguju len v bloku <FORM> </FORM>:

INPUT TYPE="typ" NAME="premenna" VALUE="hodnota" [CHECKED] SIZE="velkost" MAXLENGTH="maxvelkost"

MENO definuje meno polozky, ktore potrebujeme pri spracovavani vstupu v CGI. Je dobre si vsimnut, ze prepinace maju to iste meno, ak chceme hodnotu "prepinat" medzi jednotlivymi alternativami.

VALUE urcuje hodnotu polozky, ktoru si uchova a budeme ju moct spracovat CGI-ckom. Hodnota je bud "hodnota" alebo "on", ak ide o zaskrtavacie policko.

CHECKED ma vyznam pri prepinacoch a zaskrtavacich polickach a definuje nam policko ako "zaskrtnute" (vybrate).

SIZE urcuje velkost textoveho policka v znakoch na obrazovke.

MAXSIZE urcuje maximalnu velkost vstupneho textu v policku (pre istotu poznamenam, ze ak velkost vstupu prekroci velkost definovanu "SIZE", text sa roluje, aby sme ho v policku videli).

Teraz si trochu konkretnejsie povieme o type polozky:

 

INPUT TYPE="TEXT" NAME="meno" VALUE="hodnota" SIZE="velkost" MAXSIZE="maxvelkost"

vytvori textove okienko (jeden riadok) s velkostou "velkost" znakov, pricom maximalny pocet znakov zadany v takomto okienku je "maxvelkost". Okienko je pomenovane "meno" a ak priradime hodnotu VALUE="hodnota", vypise sa do okienka ako implicitny text. 
Po odoslani je hodnotou tejto polozky obsah okienka.

 

INPUT TYPE="PASSWORD" NAME="meno" SIZE="velkost" MAXSIZE="maxvelkost"

vytvori textove okienko s menom "meno" pre prijatie passwordu. Je to o tom istom ako text, ale napisane znaky sa nezobrazuju (namiesto nich vidime hviezdicku '*'). 
Hodnotou tejto polozky je obsah okienka (ktory vsak nevidime).

 

INPUT TYPE="CHECKBOX" [CHECKED] NAME="meno"

vytvori zaskrtavacie policko s menom "meno". Policko moze byt zaskrtnute alebo nie, ak chceme, aby bolo zaskrtnute implicitne, zadame aj parameter CHECKED. 
Hodnota policka bude "ON", ak je zaskrtnute.

 

INPUT TYPE="RADIO" [CHECKED] NAME="meno" VALUE="hodnota"

vytvori prepinac. Prepinac pozostava z viacerych prikazov s TYPE="RADIO" s rovnakym menom. Zo vsetkych alternativ moze byt aktivna iba jedna. Tu implicitnu mozeme oznacit parametrom CHECKED. 
Hodnotou tohto policka je "hodnota" toho prepinaca, ktory je aktivny v case odoslania formulara.

 

INPUT TYPE="SUBMIT" VALUE="text"

vytvori odosielacie tlacidlo formulara. Tlacidlo bude oznacene napisom "text", pokial nezadame ziaden, dosadi sa "Submit". Po odoslani formulara sa riadenie preda programu podla parametra ACTION prikazu FORM.

 

INPUT TYPE="RESET" VALUE="text"

vytvori resetovacie tlacidlo formulara s napisom "text" alebo "Reset", ak nezadame hodnotu parametru VALUE. Toto tlacidlo po stlaceni nastavi implicitne hodnoty vsetkych poloziek formulara.

Ak chcete zadavat komentare alebo vacsie textove polozky, moze sa vam hodit:

 

TEXTAREA NAME="meno" ROWS="r" COLS="s"

ktory vytvori textove okienko.

NAME nam urcuje meno tohto okienka (ako ste si určite domysleli).

ROWS a COLS urcuju velkost okienka (riadky, stlpce) v znakoch.

Tento prikaz je blokovy. Cokolvek je medzi zaciatkom a koncom prikazu TEXTAREA, berie sa ako implicitny text, ktory sa vypise do okienka.

Priklad formulara s komentarom: (tu klikni pre vysledok)

<FORM ACTION="/cgi-bin/vix/formreply" METHOD="get" >
Ako si sa dozvedel o tejto stranke? (prepinac)
<P>
<INPUT TYPE="radio" NAME="ako" VALUE="nahodou"> nahodou
<BR>
<INPUT TYPE="radio" CHECKED NAME="ako" VALUE="odkaz"> odkazom z inej stranky
<BR>
<INPUT TYPE="radio" NAME="ako" VALUE="kamos"> od znameho

<P>
Paci sa ti tato stranka? (zaskrtavacie policko)
<P>
<INPUT CHECKED TYPE="checkbox" NAME="ak_sa_ti_paci" VALUE="paci_sa_mi"> Ano
<P>
<INPUT TYPE="checkbox" NAME="ak_sa_ti_paci_velmi"
VALUE="paci_sa_mi_velmi"> Aj toto policko sa mi paci!
<P>
Sem mozes napisat komentar k stranke: (textove pole TEXTAREA)
<P>
<TEXTAREA ROWS="10" COLS="32" NAME="komentar">
Implicitny text
</TEXTAREA>
<P>
Sem sa mozes podpisat, alebo nechat "guest" ak chces ostat
anonymny: (textove pole) <P>

<INPUT TYPE="text" NAME="odosielatel" VALUE="guest">
<P>
<INPUT TYPE="submit" VALUE="Poslat!"> (odosielacie policko)
<P>
<INPUT TYPE="reset" VALUE="Zrusit!"> (resetovacie policko)
</FORM>


Pre pripad, ze by ste takyto formular odoslali (Submit) bezo zmeny, metodou
GET by boli CGI-cku poskytnute taketo udaje:

http://fornax.elf.stuba.sk/cesta/htmlhelp.html?ako=nahodou&komentar=Implicitny+text
&odosielatel=guest