Pe langa afisarea unor informatii, site-urile ne permit sa primim informatii de la vizitatori. Realizam acest lucru cu ajutorul formularelor.

<form></form> – Formular.  Atribute:
– action metioneaza adresa scriptului (aflat pe server) care va interpreta formularul.  Aceste scripturi pot fi scrise in limbajele PHP, jsp, asp etc..
– method indica metoda folosita de browser pentru transmiterea formularului. Poate lua valorile get (datele sunt trimise prin adaugarea la adresa indicata de action. Permite trimiterea unor mici cantitati de date) si post (datele sunt trimise separat si sunt permise cantitati mari de date).
– enctype – permite formului sa trimita anumite informatii sau nu. Spre exemplu, daca nu ii dam formularului enctype=”multipart/form-data”, nu putem trimite fisiere.

Un formular va arata cam asa:
<form action="fisier_procesare.php" method="metoda" enctype="tip enctype">
</form>
 <input />

Care o fi treaba cu metoda? Sau cand sa folosim get si cand sa folosim post?
Metoda get ne va afisa la adresa valorile campurilor. Pentru a testa asta, mergem pe Google si cautam ceva. Vedem ca in adresa apare si termenul cautat de noi. Ne e util, pentru ca, daca pastram adresa, putem sa vedem si mai tarziu rezultatele.
Evident, daca avem un formular de login, nu am vrea ca parola sa apara in adresa, atunci cand se trimite formularul. Cand nu vrem sa vedem valorile campurilor in adresa, folosim post.

Campuri din formular

Input – diverse controale din formular. In principiu, majoritatea campurilor din formular sunt inputuri. Poate avea atributele:
type – indica tipul datelor care vor fi introduse:
text -text;
submit –trimite formularul;
reset –reseteaza formularul;
password –parola;
hidden -nu este vizibil, programatorul poate sa isi transmita anumite informatii;
checkbox -caseta de validare;
button –buton;
radio -selectarea unui singur element dintr-un grup;
file -fisier pentru upload;
image -butonul va fi inlocuit cu o imagine
name – numele asociat campului respectiv. Este folosit la prelucrarea datelor de catre scriptul mentionat in action.
size – numarul de caractere vizibile din camp, nu e obligatoriu sa apara.
value – daca dorim sa ii dam o valoare, nu e obligatoriu sa apara.

Un input va arata cam asa:
<input type="tip" value="valoare sau nimic" name="nume" size="valoare sau nu apare"/>

Inputul e control nepereche.

Select – ne lasa sa alegem dintr-o lista. Avem posibilitatea sa afisam un text pentru fiecare optiune, dar vom lucra cu valorile optinilor. Concret:
<select name="nume">
   <option value="valoare 1">Text optiune 1</option>
   <option value="valoare 2">Text optiune 2</option>
   <option value="valoare 3">Text optiune 3</option>
   <option value="valoare 4">Text optiune 4</option>

</select>

Textarea – este o casuta de text, unde putem pune textul pe mai multe linii. Nu are atributul value, ci continutul se pune intre tagurile pereche  <textarea></textarea>
<textarea name="nume"> continut
</textarea>
Motivul pentru care textarea nu are atributul value, este faptul ca putem pune in continut si taguri html, care vor fi afisate in textarea.

Asadar, un form va arata:

<form action="script.php" method="post">
Nume:<input type="text" name="nume"><br />
Prenume:<input type="text" name="prenume"><br />
<input type="submit" value="Trimite">
<input type="reset" value="Sterge">
</form>

Avem nevoie de un buton care sa transmita informatiile, e recomandabil sa folosim un input de tip submit.

Procesarea formularelor se va face la cursul de PHP. Pana atunci, vom invata stilizarea si validarea formularului.

Tema

1. un fisier care se numeste formular.html si in care incercati exemplele din documentatie in html
2. un formular de inregistrare care va avea urmatoarele campuri:
nume, prenume – inputuri text
parola – input password
universitatea – select
facultatea – input text
anul de studii – input radio, cu valori de la 1 la 5
descriere –  textarea
poza – fisier
de acord cu termenii si conditiile – casuta de bifare
nume fisier curent – camp ascuns
buton simplu, care nu trimite formularul
buton de trimitere
buton de resetare