Forms

      Postoje i stvari koje browser ne moze da obradi i proizvede u neki rezultat, a sto je sasvim razumljivo, jer da moze sve, onda nam osim browsera nebi vise trebali ikakvi drugi programi. I tako, posto bi hteli svasta nesto preko ovog Interneta, a sam browser to ne moze realizovati, doslo se na ideju da se ostale mogucnosti povere serveru, pa kada nam zatreba i nekakva posebna izmisljotina, da to browserom zatrazimo od servera pa server sa svojim velikim operativnim mogucnostima to obradi, i posalje nam (ili jos nekome) rezultat. Ti nalozi, zahtevi ili molbe serveru se u ovoj HTML nauci zovu Forme (Forms).
   Mnoge od Formi ste svakako imali priliku da vidite, a to su one stranice gde morate upisati svoje podatke za neku narudjbu, ili sifru za pristup svome email-u, a najcesce i kakvoj pornografskoj umetnosti rvanja, pa je zato najbolje da vam se odmah obrazlozi i kako one funkcionisu. To je, uglavnom jednostavno. Na serveru stoje instalisani programi i programcici koji mogu da obave svasta nesto lepo za vas, pa je samo potrebno znati sta neki server ima od te programske podrske i kako izgledaju Forme koje odgovaraju tim programima. Najcesce prisutne forme na privatnim webovima su one za knjigu gostiju, upis u E-mail ili Chat listu, pa i slanje narudjbi za neku interesantnu stvarcicu. E, a sada, ovom svemu treba samo jos dodati da se oni programi i programcici koji rade te stvari, na serveru standardno smestaju u jednu fasciklu (direktorij) koja uvek ima naziv cgi-bin. Dakle, imate formu na svome web-u, sa kojekakvim rubrikama za popunjavanje, i na kraju prikazanu i onu cuvenu dugmad, poput Submit ili Reset, pa kada klijent ispise sta hoce i klikne na button za potvrdu, browser to salje serveru u cgi-bin direktorij tom i tom programcicu. Onda, zavisno od toga o cemu se radi, program ili odmah uzvrati neki web odgovor, ili upise nesto u neku listu koju moze videti samo odredjena firma, ili dostavi nesto nekome email-om. A moze i sve troje, kao i jos nesto, zavisno od toga sta je tim programom na serveru sve izprogramirano.
   Svaki oblik neke forme se u HTML-u ispisuje upotrebom <form></form> taga. Nakon svega do sada navedenog prvi primer jedne forme bi mogao biti prikazan ovako:

<form method=post action="http.//www.avala.net/cgi-bin/prijava"
  <p>Vase ime: <input name="ime" size"15">
  Vase prezime: <input name="prezime" size="30">
  Vas email:      <input name="email" size="20">
  <input type=submit value="posalji">
  <input type=
reset   value="ponisti">
  </form>

Ovo je jedna forma zamisljena kao prost obrazac za prijavljivanje na neciju email listu. U prvom redu se vidi da se nakon potvrde na njen Submit button upisani podatci prosledjuju na avala.net u cgi-bin direktorij, programu pod nazivom "prijava", a iz ostatka forme se da zakljuciti kako to browser po upisu odredjenih tagova i atributa onda realizuje i prikazuje one rubrikice za upis, i buttone s natpisima Submit i Reset. Znaci, ni one buttone ne trebate "crtati" pa uvlaciti u web kao neku grafiku nego ih browser realizuje nakon atributa (submit/reset) sa natpisom (name) koje ste mu sa odgovarajucim HTML parametrima odredili. U praksi, taj gornji primer HTML-a browser realizuje ovako:

Vase ime:
Vase prezime:
Vas email:

   U principu, oblik neke forme se uglavnom i dobija od server-providera, ali kako je vec uobicajeno da svaki cgi-program podrzava obradu HTML-Forms ciji su atributi i parametri uvedeni kao standard, onda je uglavnom potrebno znati tacnu adresu svakog cgi obradjivaca u cgi-bin direktoriju servera, posto tu jedan program obavlja email export, drugi prima i kreira podatke knjige utisaka, treci je za forum-diskusije itd. ovisno od toga sta koji server vec podrzava u svojoj ponudi.
        U PRVI ELEMENT OD <form></form> TAGA MOGU ICI ATRIBUTI :

  ACTION parametar mu je puna adresa (URL) cgi-bin direktorija na koji se forma salje nakon Submit-a. Ako ovaj action atribut nedostaje, browser onda podrazumeva kao adresu trenutni url (web) sa kojeg se forma i salje.
  METHOD kao parametar mu se upisuje protokol koji ce se koristiti u transmisiji i obradi doticne forme. Osnovni protokol za http:// adresiranje je GET, ali najcesci u upotrebi je POST.
  ENCTYPE odredjuje tacan format podataka u slucaju da standardnim protokolima nije odredjen. Primera radi, sa POST protokolom se podrazumeva tzv. MIME format prenosa podataka, pa je primena ovog enctype atributa tada nepotrebna.

   Dodatno ovome treba upozoriti da se unutar <form></form> taga ne moze ugnezditi, ubacivati, jos neki <form></form> tag, ali se zato u sastavu jednog web dokumenta moze upisati odvojeno vise <form></form> tag skupina, sto znaci da iz jedne web stranice mozete slati na obradu i razlicite forme, razlicitim cgi-bin programima na serveru. Nakon ovoga dolaze na red tagovi koji mogu ici unutar jednog <form></form> taga. Kao prvi:
   SADA IDE <input> TAG U VIDU TAG ELEMENTA BEZ SVOG OPOZIVNOG PARA,
a koji sluzi za kreiranje prostora, polja, namenjenog upotrebi na strani klijenta. Njegov  osnovni oblik je priblizno <input name="ime" type=text size="50">, a atributi sledeci:

ALIGN Vec poznat atribut iz ranije obradjivanih tagova. Ovde se koristi samo u slucaju primene type=image atributa koji slede dole nize.
CHECKED Pokazuje da su checkbox ili radio button selektovani. Ako su neselektovani onda odaslana forma ne vraca name i value.
MAXLENGHT Odredjuje maksimalan broj slova i znakova koji se moze upisati u prostor predvidjen za upis klijentovog teksta. Ne zavisi od size atributa posto u slucaju veceg broja slova tekst skroluje unutar size polja. Ako se ovaj atribut ne navede, browser podrazumeva mogucnost upisa neogranicenog broja karaktera.
NAME Simbolicki naziv koji sluzi kao identifikacija odredjenog polja pri prenosu sadrzaja forme. Ovaj atribut se zahteva za vecinu <input> elemenata kao identifikator mesta ili logickog povezivanja polja.
SIZE Odredjuje velicinu prostora za upis brojem slova koja mogu stati.
SRC Vec poznat atribut za adresiranje. Ovde sluzi za link na neku sliku (image), ali samo uz upotrebu i type=image atributa.
TYPE Odredjuje tip, vrstu podatka koji se prihvata u polju. Podrazumeva se slobodan text, a i vise drugih vrsta se odredjuje ovim atributom.
CHECKBOX Odredjuje prikaz malih box-polja (kvadrat,krug) za markaciju, selekciju izbora, kvakicom ili tackom. Bez parametra CHEKED browser podrazumeva i prikazuje prazan, neselektovan checkbox.
HIDDEN Odredjuje da sadrzaj polja nece biti vidljiv, ali ce biti prosledjen sa formom, kao i u slucajevima primene password atributa.
IMAGE Atribut koji daje na znanje da se njime prenose x/y koordinate tacke dodira i potvrde kursorom na nekoj slici koja je uvucena kao polje forme. Najcesce se radi o izboru na nekom geografskom prikazu regija, planu gradskih zona i slicnim link temama.
PASSWORD U ovom polju upisani tekst se prikazuje u vidu zvezdica, ali se prosledjuje serveru na obradu u svom originalnom obliku.
RADIO Naziv se odnosi na prikazivanje button-a (dugmeta) i polja ciji je smisao pozajmljen po uzoru na ponudu radio-prijemnika, gde se nudi izbor ispisanih radio-stanica, a uvek mozete izabrati i slusati samo jednu. Dakle, ne radi se ni o kakvom radio-prijemu nego o atributu koji odredjuje browseru prikaz takve liste unutar polja i button-a koji tu ponudu otvara.Tu se moze izabrati markacijom samo jedna vrednost iz prikazane liste. Sva radio dugmad u okviru jedne iste form grupe moraju da imaju isto ime. I ovde se sa checked moze odrediti nesto kao unapred markirano, ali se time takodje ne sprecava naknadni klijentov drugaciji izbor. Uz ovaj atribut ide kao obavezan i value, unutar <input> elementa.
RESET Prikazuje dugme za povracaj svega u pocetno stanje ponude. Sa pridodanim atributom value mozete odrediti tekst na dugmetu.
SUBMIT Prikazuje dugme za slanje sadrzaja forme serveru, na obradu u cgi-bin direktorij. I ovde se moze koristiti value za natpis. Bez tog, podrazumevani natpis zavisi od autora forme i cgi aplikacije.
TEXT Kreira jednolinijsko polje za upis kratkih tekstova i ide u kombinaciji sa atributima size i maxlenght.
TEXTAREA Kreira prostor za viselinijski tekst (vise redova) dozvoljavajuci upis do 1024 font karaktera.
FILE Sluzi za omogucavanje "kacenja" i slanja fajlova predvidjenih MIME specifikacijom (sve sto moze i email-om). Ta funkcija se moze ograniciti i na samo odredjenu vrstu fajlova upotrebom ACCEPT parametra. Primera radi, za prenos grafike bi to bilo kao <input name=slike type=file accept="image/*">
VALUE Odredjuje pisani sadrzaj koji ce se pojaviti na nekom elementu ili polju. U zavisnosti od kombinacije atributa u kojoj je primenjen, taj value sadrzaj se moze ili ne moze menjati po zelji klijenta.

Sledeci tag u izradi formi je <select></select> koji nazivom govori svoju namenu
Dakle, sluzi da se klijentu omoguci izbor neke ponudjene opcije od <option>tag elementa koji inace nema svoj opozivni par. Vise opcija se daje sa vise <option> tagova. Atributi su:

MULTIPLE Njime se omogucava uvodjene vise izbora dodavanjem iza select. Na primer, za izbor vise komada neke knjige, oblik bi bio kao <select multiple name="komada"> NAME Odredjuje naziv ili vrednost onoga sto se prosledjuje serveru. SIZE U ovom slucaju ovaj atribut ovde odredjuje broj opcija u ponudi. SELECT Vec naslovljeni element koji daje prikaz selekt ponude.

  I, na kraju svega, imamo i <textarea></textarea> tag, vec  pomenut  kao atribut   a koji isto tako sluzi za kreiranje vise redova polja za pisanje na strani klijenta Atributi su

ROWS Odredjuje broj redova teksta u polju za ispisivanje.
COLS Odredjuje broj stubaca teksta u polju.
NAME Odredjuje ime koje se prosledjuje kao identifikacija.

  Mogucnosti <textarea> elementa se prosiruju na tri nacina.Prvi je <textarea wrap=off> i on odredjuje da se upis ne moze prelamati u novi red. To je uvedeno zato sto se kod upisa sifri ili drugih brojnih iznosa to ne sme dogadjati radi pravilne cgi obrade. Drugi je <textarea wrap=virtual> koji dozvoljava prelamanje pisanog, ali samo na ekranu, dok ce prilikom slanja to biti isporuceno kao jedan red. Treci nacin je <textarea wrap=physical> koji prelomljene redove isporucuje na obradu kao takve.
   Ovim se ovo predavanje o formama i zavrsava. Pa, sretno vam eventualno mozganje, uz napomenu da su forme ipak namenjene profesionalnom bavljenju izrade www-a, dok ce vama mozda zatrebati tek neka E-mail formica koja se izvrsava pomocu Java Scripts odmah u browseru, to jeste, putem kompa klijenta, ili neka jednostavna Perl aplikacija za server, poput knjige gostiju, a o cemu se mozete upoznati ovde levo u DHTML i CGI rubrikama, dok jednu od takvih, na bazi Java Scripta, imate upravo ovde ispod.

Radovanovic Dragan