|
|
Večina oblikovalcev HTML strani se kmalu znajde pred sorazmerno zahtevnim problemom - kako narediti anketo, dostopno obiskovalcem strani (najbolj pogosta anketa je seveda knjiga gostov). Izdelava takšne ankete ni zelo zahtevna, zahteva pa obvladovanje treh konceptov:
Kreiranje HTML formeForme so del HTML strani, v katerega lahko uporabniki vnašajo podatke. Vsaka HTML stran ima lahko več form, vsaka forma pa poljubno število polj. Polja v formi so lahko tekstovna polja, checkbox polja, radio-button polja ali pull-down polja. Med opisom polj lahko seveda uporabljamo vse ostale HTML ukaze, tako lahko npr. polja v formi uredimo v tabelo, dodamo tekst, ki razlaga pomen polj ipd. Vsaka forma poleg polj, v katera obiskovalci strani vpisujejo podatke, vsebuje tudi akcijo ki naj se izvede ob zaključku vnosa podatkov (ko uporabnik pritisne submit gumb). Ta akcija je navadno program, ki se izvede na web strežniku. Več o tem, kakšna akcija naj se izvede ob zaključku vnosa podatkov, boste izvedeli na koncu te lekcije. HTML formo definirate s HTML ukazom <FORM>, zaključite pa z ukazom </FORM>. V ukazu <FORM> lahko definirate:
V spodnjem primeru lahko vidite HTML kodo, ki definira enostavno HTML formo (brez polj). <HTML><HEAD> <TITLE>Enostavna HTML stran</TITLE> </HEAD><BODY> Tekst pred formo <FORM ACTION="http://www.somewhere.com/cgi/post.pl" METHOD=POST> Tekst v formi </FORM> Tekst za formo </BODY></HTML> Definiranje polj v formiKo ste definirali formo, lahko vanjo dodate posamezna polja. V tej lekciji bomo uporabljali samo enostavna tekstovna polja in checkbox polja (polja, ki jih lahko odkljukamo). Večino polj dodajamo v formo s HTML ukazom <INPUT>, izjema so večvrstična polja, ki jih dodajamo z ukazom <TEXTAREA> in pull-down polja, ki jih naredimo z kombinacijo ukazov <SELECT> in <OPTION>. Da bo web browser vedel, kakšno polje želimo imeti v formi, moramo v ukazu <INPUT> obvezno navesti tip polja s parametrom TYPE=tip_polja. Enostavno tekstovno poljeZa definicijo enostavnega tekstovnega polja uporabimo ukaz <INPUT TYPE=TEXT>, poleg njega pa lahko navedemo še naslednje parametre:
Primer: HTML ukaz ... <INPUT TYPE=TEXT NAME=primer SIZE=10 MAXLENGTH=20 VALUE="Nekaj zanimivega"> ... bo definiral tekstovno polje z imenom primer, dolžino 10, začetno vrednostjo "Nekaj zanimivega", obiskovalec pa bo lahko vanj vpisal do 20 znakov teksta. Polje bo zgledalo približno takole: Dodajanje Checkbox poljPodobno kot tekstovna polja dodajamo check-box polja s HTML ukazom <INPUT TYPE=CHECKBOX>. Ta ukaz bo narisal samo kvadratek, ki ga bo uporabnik lahko odkljukal, tekst, ki bo razložil pomen kvadratka, boste morali napisati sami.
Ukaz <INPUT TYPE=CHECKBOX> potrebuje dva parametra - NAME=ime, ki definira ime polja in VALUE="vrednost", ki definira vrednost polja, kadar je to odkljukano. Če želimo, da bo polje v ob nalaganju strani odkljukano, dodamo še parameter CHECKED.
Primer: HTML sekvenca ... Prvo polje: <INPUT TYPE=CHECKBOX NAME=prvo VALUE="A"> Drugo polje: <INPUT TYPE=CHECKBOX NAME=drugo VALUE="B" CHECKED> ... bo definirala dve checkbox polji skupaj s spremnim tekstom. Če bo prvo polje odkljukano, bo program, ki se bo izvedel kot akcija forme, dobil podatke o polju prvo z vrednostjo A, če bo odkljukano drugo polje pa podatke o polju drugo z vrednostjo B. Seveda sta lahko hkrati odkljukani obe polje (ali pa nobeno od njih). Prvo polje bo odkljukano ob nalaganju HTML strani, približno takole:
Dodajanje gumbov v formoV večini HTML form boste našli vsaj dva gumba:
Gumbe, s katerimi v HTML formi zaključimo vnos podatkov, definiramo z ukazom <INPUT TYPE=SUBMIT>, gumbe, s katerimi vrnemo vrednost polj v formi na začetne vrednosti pa z ukazom <INPUT TYPE=RESET>. V obeh ukazih s parametrom VALUE="oznaka" podamo tekst, ki naj bo napisan na gumbu. Lepo je, če damo gumbu tudi ime s parametrom NAME=ime. Vsaka forma ima lahko seveda več submit gumbov in več reset gumbov.
Primer: HTML ukaz ... <INPUT TYPE=SUBMIT NAME=finished VALUE="Pritisni me"> ... bo definiral submit gumb z oznako "Pritisni me", ki bo izgledal približno takole: Shranjevanje podatkov vnešenih v formoDefiniranje forme in polj v njej je bilo enostavno. Na tem mestu pa se stvari hudo zapletejo, definirati bo potrebno program, ki bo vrednosti polj, vnešenih v formo, shranil na naš Web strežnik ali poslal lastniku forme. Za izvedbo tega dela posla navadno potrebujemo:
Na srečo je shranjevanje podatkov, vnešenih v formo, tako pogost posel, da marsikateri strežnik nudi program, ki ga lahko navedete kot ACTION parameter vaše forme in ki bo posnel podatke, zapisane v formi, na vaš direktorij na strežniku (za več informacij se obrnite na administratorja vašega strežnika). Če vaš strežnik podpira FrontPage extensions, mu lahko z dodatnimi HTML ukazi poveste kaj naj naredi s podatki v vaši formi. Če uporabljate urejevalnik FrontPage, si oglejte lekcijo Zapis podatkov iz forme s Frontpage Extensions . Pošiljanje podatkov iz browserja preko elektronske pošteČe nimate prav nobene boljše rešitve, lahko kot ACTION parameter forme napišete mailto:e-mail@naslov, kar bo browserju povedalo, da naj pošlje podatke v formi na vaš e-mail naslov. Ta trik navadno deluje le če ima uporabnik pravilno konfiguriran browser, ki ga uporablja tudi za branje pošte, v vsakem primeru pa bo v novejših browserjih sprožilo kup varnostnih pripomb, ki bodo samo zmedle uporabnike. To možnost zato uporabljajte le v skrajnih primerih, ko vse drugo odpove. Zadnji primerZaključimo to lekcijo še z enim primerom, ki bo povzel vse, kar smo se v njej naučili. Naredili bomo formo, v kateri bomo obiskovalca vprašali za njegov e-mail naslov hkrati pa mu ponudili da ga lahko obveščamo o novostih na našem Webu. Našo stran začnemo tako kot vedno ... <HTML><HEAD> <TITLE>Vpis v knjigo gostov</TITLE> </HEAD><BODY> ... nato napišemo malce uvoda <H1>Dobrodošli</H1> <p>Vabimo vas, da se vpišete v našo knjigo gostov</p> ... definiramo našo formo <FORM ACTION="mailto:moj.email@moj.server.com"> ... definiramo polja v naši formi Vaš e-mail naslov: <INPUT TYPE=TEXT NAME=EMAIL SIZE=40><BR> Odkljukajte to polje <INPUT TYPE=CHECKBOX NAME=NEWS VALUE="Yes"> če želite da vas obveščamo o novostih. ... in zaključimo formo ter HTML stran </FORM></BODY></HTML> Seveda bi v resnični Web strani le-to malce lepše oblikovali, morda s pomočjo HTML tabel, in uporabili več polj. |