Interval.cz
XHTML û formulß°e

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∞.



Martin Snφ₧ek (6.5. 2003)

Redakce Interval.cz |  Inzerce na Interval.cz |  Hledßme novΘ autory ISSN 1212-8651 
 ⌐ Zoner software, s.r.o., vÜechna prßva vyhrazena, tento server dodr₧uje prßvnφ p°edpisy o ochran∞ osobnφch ·daj∙.