Tehnici Web

Laboratorul 10

Formulare

Formularele se definesc cu ajutorul tagului <form></form>. Formularele repreinta o unealta prin care utilizatorii introduc anumite date, seteaza anumite optiuni, pentru ca apoi acestea sa fi transmise catre o alta pagina (poate fi si pagina curenta dar la transmitere se va realiza o reincarcare a acesteia). Pagina care primeste datele, pentru a le putea interpreta si prelucra trebuie sa contina un script (scriptul poate fi atat server side cat si - numai in cazul metodei get - client side). Pagina spre care sunt transmise datele se specifica in atributul action al formularului.

Formularele au doua metode de transmitere a datelor: get si post. Metoda aleasa se va specifica in atrbutul method al formularului Prin metoda get datele sunt transmise in mod vizibil, aparand in bara de adrese, in continuarea URL-ului, la incarcarea paginii specificate in action, si vot fi de forma: ?nume1=val1&nume2=val2&....nume_n=valn Prin metoda post, valorile campurilor transmise catre pagina specificata in action nu mai sunt vizibile pentru utilizator. De aceea metoda post este mai sigura si poate fi folosita de exemplu pentru un formular cu un camp care trimite o parola.
Evenimentul de transmitere a datelor se numeste submit.

Elemente specifice formularelor

In general elementele html ati vazut ca sunt statice, nemodificabile in mod predefinit. Intr-adevar, unele din ele pot deveni modifcabile daca le setam atributul contenteditable, iar in alte cazuri, continutul lor poate fi schimbat in mod dinamic prin javascript, insa starea lor default este un statica, iar continutul lor e intentionat a fi constant, fixat (de exemplu headere(h1-h6), paragrafe, imagini etc.).
Elementele specifice formularelor, insa, sunt destinate pentru a avea continut modificabil, sau o stare ce poate fi schimbata tocmai pentru a permite introducerea de date de catre utilizator. Ele sunt specifice formularelor insa asta nu inseamna ca in mod obligatoriu apar intr-un element de tip form. Pot aparea in afara formularelor in diverse situatii cand datele nu trebuie transmise catre o alta pagina (sau, daca e vorba de pagina curenta, aceasta nu trebuie reincarcata). De exemplu putem avea un select(drop down list) care ne lasa sa schimbam culoarea de background in pagina; aceasta se poate realiza printr-un script care in urma captarii unui eveniment de schimbare de stare a selectului doar seteaza dinamic o proprietate css, fara a fi necesar efectiv un submit de formular.

Exemple: