Vom incepe cu cateva
elemente de HTML:
-
Pentru a descrie un formular folositi eticheta FORM, care are urmatoarea
forma elementara:
<FORM METHOD=”metoda”
ACTION=”url” >
Atributul METHOD poate lua
una din valorile GET sau POST.
Cand METHOD este
GET (implicit), datele introduse in form sunt trimise ca o cerere HTTP GET
cu ?form_data adaugat la sfarsitul URL-ului specificat de
atributul ACTION . Astfel, datele trimise prin metoda GET pot fi
vizualizate de catre utilizator (dezavantaj).Folositea
metodei GET permite ca trimiterea form-ului sa fie continuta in URL. Aceasta
prezinta avantajul ca poate fi facuta bookmark in browserele actuale, dar,
datele nu pot contine caractere non-ASCII precum "é" si
"©". De asemenea, cantitatea de date care poate fi procesata prin metoda GET
este limitata de lungimea maxima a URL-ului pe care o accepta serverul si
browserul. Pentru siguranta, form-urile care ar putea contine caractere non-ASCII
sau mai mult de 100 de catactere trebuie sa foloseasca METHOD=POST.Cu
valoarea METHOD egala cu POST, datele introduse in form sunt trimise ca o
cerere HTTP POST , iar datele sunt continute in interiorul cererii .Majoritatea
browserelor actuale nu pot face bookmark la cereri POST , dar, astfel POST
nu limiteaza lungimea si tipul de caracter introdus ,precum la GET.
Ca incepator este mai bine sa
folositi in mod consecvent metoda POST, deoarece alegerea intre metodele GET
si POST este destul de complicata.Ca regula empirica, multi programatori
folosesc GET pentru formulare care executa o cautare sau o interogare,
respectiv POST pentru formulare care actualizeaza o baza de date sau un
fisier.Astfel, datele trimise prin metoda GET pot fi vizualizate de catre
utilizator.
Atributul ACTION
specifica adresa URL a scriptului PHP care prelucreaza datele adunate prin
intermediul formularului. Adresa URL poate fi o adresa completa,care include
protocolul, numele gazdei si calea de acces, respectiv o adresa partiala,
care specifica o locatie relativa la locatia paginii curente.
Intre eticheta FORM si
eticheta sa /FORM corespunzatoare, plasati controalele formularului
Ex 1:
<FORM method=”POST”
action=”http://www.php.intercer.org/test.php”>
<FORM method=”POST”
action=”test1.php”>
-
Pentru a crea o caseta de tip text folosim un control text :
<INPUT TYPE=”text”
name=”mytext”>
Atributul NAME
atribuie casetei cu text un nume, astfel incat continutul sau sa fie
accesibil unui script PHP.Numele pe care il atribuiti unui control trebuie
sa fie unic in cadrul formularului si trebuie sa respecte regulile pentru
denumirea variabilelor PHP, cu exceptia ca nu trebuie sa inceapa cu simbolul
$. HTML nu are o eticheata /INPUT.
-
Daca
trimitem scriptului PHP date confidentiale, folosim o caseta text de tip
password
<INPUT TYPE=”password”
name=”mypassword”>
-
Pentru a expedia datele unui script PHP aveti nevoie de un buton de
expediere :
<INPUT TYPE=”submit”
VALUE=”text”>
Atributul VALUE
specifica textul care trebuie sa apara pe suprafata butonului de expediere
Ex 2:
Crearea unui formular cu
3 controale: un control de tip text, unul de tip password si un buton
<FORM METHOD=”post”
ACTION=”login.php”>
Login : <INPUT
TYPE=”text” name=”login”>
Parola : <INPUT
TYPE=”password” name=”parola”>
<INPUT
TYPE=”submit” VALUE=”Login”>
</FORM>
-
Crearea de suprafete cu text
Ca o caseta cu text, o
suprafata cu text permite unui utilizator sa introduca text.Cu toate acestea,
o suprafata cu text poate permite utilizatorului sa introduca mai multe
linii de text, in timp ce o caseta de text permite introducerea unei singure
linii de text.
<TEXTAREA
NAME=”mytext” ROWS=”numar” COLS=”numar” WRAP=”wrap”>
Atributul NAME(obligatoriu)
specifica numele controlului.
Atributul ROWS(obligatoriu)
specifica numarul liniilor de text vizibile in suprafata cu text
Atributul COLS(facultativ)
specifica numarul coloanelor de text vizibile in suprafata cu text
Atributul WRAP(facultativ)
specifica maniera de infasurare in interiorul suprafetei cu text.
O eticheta TEXTAREA
trebuie combinata cu o eticheta /TEXTAREA.Orice text care apare intre
etichete va fi prezentat drept continut initial al controlului de tip
suprafata cu text.
-
Crearea campurilor ascunse
Uneori este utila crearea
asa-numitelor campuri ascunse.Valorile campurilor ascunse sunt trimise la
server alaturi de valorile altor controale; cu toate acestea, utilizatorul
nu are posibilitatea de a vizualiza sau manipula valorile campurilor
<INPUT TYPE=”hidden”
NAME=”mytext” VALUE=”myvalue”>
-
Crearea casetelor de validare
Pentru datele care pot
avea numai una din doua valori, cum ar fi “pornit” sau “oprit”, caseta de
validare este controlul ideal.De exemplu, caseta de validare este un control
adecvat pentru a permite utilizatorului sa opteze pentru livrarea rapida a
unui colet.In cazul in care caseta de validare este validata, coletul va fi
livrat mai rapid, in caz contrar, coletul se va deplasa cu mijloace
obisnuite.
<INPUT TYPE=”checkbox”
NAME=”mycheck” value=”text” CHECKED>
Daca atributul CHECKED
apare, caseta de validare va fi selectata in mod prestabilit; in caz contrar,
caseta de validare nu este selectata initial.
Atributul VALUE
specifica valoare care este trimisa serverului in cazul in care caseta de
validare este selectata; daca atributul nu este specificat, se va trimite
valoarea on (activat)
-
Crearea butoanelor radio
Ca si casetele de
validare, butoanele radio pot avea numai una din doua valori. Cu toate
acestea, butoanele radio sunt organizate in grupuri, iar la un moment dat
poate fi activat un singur buton radio din cadrul unui grup; toate celelalte
trebuie sa fie dezactivate.Butoanele radio sunt utile pentru a permite unui
utilizator sa aleaga dintr-o serie de alternative mutual exclusive.De
exemplu, puteti folosi un set de trei butoane radio pentru a permite
utilizatorului sa specifice tipul de ambalaj pentru un cadou: fara ambalaj,
cu ambalaj simplu sau sofisticat. Numai unul din cele trei butoane radio
poate fi activat; la un loc, setul de butoane radio ofera utilizatorului o
tripla optiune.
<INPUT TYPE=”radio”
NAME=”myradio” value=”text” CHECKED>
Atributele unui buton
radio au aceeasi semnificatie ca si acelea ale unei casete de validare
Toti membrii unui set de
casete de validare prezinta acceasi valoare a atributului name
-
Crearea de selectii
O selectie este un meniu
care defileaza, de unde utilizatorul poate alege una sau mai multe optiuni.
De exemplu, intr-o selectie pot fi enumerate garniturile pentru pizza,
astfel incat un utilizator sa poata selecta orice combinatie de garnituri pe
care o doreste.
<SELECT
NAME=”myselect” size=”numar” MULTIPLE>etichete OPTION</SELECT>
Eticheta SELECT este
folosita in combinatie cu eticheta /SELECT. Intre cele doua etichete este
inclusa o serie de etichete OPTION.
Atributul MULTIPLE
arata ca utilizatorul poate alege mai multe optiuni mentinand apasata tasta
CTRL si executand click pe aceasta.In absenta atributului MULTIPLE,
utilizatorul poate selecta o singura optiune.Daca specificati atributul
MULTIPLE, trebuie sa specificati si un atribut NAME, care atribuie un nume
de tablou ca nume al controlului. De exemplu, un control de tip selectie
care permite utilizatorului sa aleaga mai multe garnituri pentru desert
trebuie denumit folosind sintaxa garnitura[], nu garnitura.
Atributul SIZE
specifica numarul de optiuni vizibile.Prin utilizarea unui buton de derulare
in jos sau a unei bare de defilare, utilizatorul poate manipula selectia
pentru a obtine accesul la restul optiunilor si a alege dintre acestea.
Asa cum s-a aratat, o
selectie este asociata cu una sau mai multe optiuni.Pentru a crea o optiune
care urmeaza a fi utilizate in cadrul unei selectii, folositi urmatoare
sintaxa:
<OPTION SELECTED
VALUE=”text”>continut_optiune</OPTION>
Eticheta OPTION este
combinata cu eticheta /OPTION. Textul dintre aceste etichete este cunoscut
sub numele de continut al optiunii. Continutul optiunii apare in controlul
SELECT.
Multi programatori HTML
omit eticheta /OPTION, caz in care textul optiunii se extinde pana la
urmatoarea eticheta OPTION sau /SELECT/.Totusi s-ar putea ca acest mod de
utilizare sa nu fie compatibil cu versiunile ulterioate ale standardului
HTML.
-
Crearea unui buton de reinitializare.
Acest buton este folosit
pentru ca utilizatorul sa poata sterge toate informatiile incluse intr-un
formular.
<INPUT TYPE=”reset”
VALUE=”reset”>
Unicul atribut
obligatoriu este TYPE. Atributul optional VALUE specifica
textul care va aparea pe suprafata butonului de reinitializare; daca
atributul este omis, pe buton va scrie “Reset”.
Am vazut cum se poate
crea un formular in HTML.Acum o sa vedem cum putem prelua variabilele din
php si sa le afisam intr-o fereastra noua.
O variabila preluata
dintr-un formular poate fi preluata prin una din modalitatile :
1. $_POST[“nume_variabila”]
sau cu $_GET[“nume_variabila”] (in functie de atributul method al
formului – post sau get)
2. De asemeni pot fi
folosite si $HTTP_POST_VARS[“nume_variabila”] si $HTTP_GET_VARS[“nume_variabila”]
3. Daca in PHP.ini (fisierul
de configurare al php-ului) aveti setat register_globals=on puteti folosi $nume_variabila
Personal va recomand
prima varianta.
Sa luam cateva exemple de
formulare simple :
Ex 3 : preluarea
valorii unui control text
test.html
<form action="test.php"
method="POST">
Introduceti numele :
<input type="text" name="name"><br>
<input type="submit"
value="Trimite">
</form>
test.php
<?php
echo "Salut ".$_POST["name"]."
!!";
?>
Similar se face pentru
controale de tip password si textarea.
Ex 4: preluarea
valorii unui control checkbox
test1.html
<form action="test1.php"
method="POST">
Alb <input
type="checkbox" name="color_alb" value="alb"><br>
Rosu <input
type="checkbox" name="color_rosu" value="rosu"><br>
Alb <input
type="checkbox" name="color_verde" value="verde"><br>
<input
type="submit" value="Trimite">
</form>
test1.php
<?php
echo "Ati selectat
culorile :<br>";
if($_POST["color_alb"]!="")
echo "Culoarea
".$_POST["color_alb"]." !!<br>";
if($_POST["color_rosu"]!="")
echo "Culoarea
".$_POST["color_rosu"]." !!<br>";
if($_POST["color_verde"]!="")
echo "Culoarea
".$_POST["color_verde"]." !!<br>";
?>
Ex 5: preluarea
valorii unui control radio
test2.html
<form action="test2.php"
method="POST">
Alb <input
type="radio" name="color" value="alb"><br>
Rosu <input
type="radio" name="color" value="rosu"><br>
Alb <input
type="radio" name="color" value="verde"><br>
<input type="submit"
value="Trimite">
</form>
test2.php
<?php
echo "Ati selectat
culoarea :".$_POST["color"]." !!!";
?>
Ex 6: preluarea
valorii unui control select
test3.html
<form action="test3.php"
method="POST">
Selecteaza culoare :
<select
name="color[]" MULTIPLE size="3">
<option>alb</option>
<option>negru</option>
<option>rosu</option>
<option>verde</option>
<option>albastru</option>
<option>galben</option>
</select>
<input type="submit"
value="Trimite">
</form>
Obs: daca doriti selectie
simpla puneti name=”color” iar daca doriti sa fie vizibila o singura optiune
la un moment dat stergeti size=”3”
test3.php
<?php
if(is_array($_POST["color"])){
$c=count($_POST["color"]);
echo "Ati selectat
culorile<br>";
foreach ($_POST["color"]
as $key => $value)
echo "$value<br>";
}
else{
echo "Ati selectat
culoarea :".$_POST["color"]." !!!";
}
?>
Sper ca ati inteles
aceste exemple !!
Acum sa trecem la tema !
Tema -crearea unui
formular pentru inscrierea la un “newsletter”
Campurile de care aveti
nevoie sunt specificate in urmatorul tabel:
|
Nume camp |
Obligatoriu(Da/Nu) |
Tip control |
Observatii |
| Nume |
Da |
text |
|
| Prenume |
Da |
text |
|
| Sex |
Da |
radio |
|
| Starea civila |
Da |
select |
casatorit(a), necasatorit(a),
divortat(a) |
| Data nasterii |
Da |
select |
se utilizeaza 3 controale select
(zi,an,luna) |
| Domiciliul |
Da |
textarea |
aici utilizatorul va scrie
strada,nr,bloc,scara, etaj, apartament |
| Oras |
Da |
text |
|
| Judet/Sector |
Da |
select |
selectul va contine judetele din
Romania+ cele 6 sectoare din Bucuresti |
| Cod postal |
Da |
text |
|
| Email |
Da |
text |
|
| Telefon |
Nu |
text |
|
| Fax |
Nu |
text |
|
| Venit lunar |
Nu |
radio |
aici alegeti si voi niste
intervale (100-200$, 201-300$, 301-500$, peste 500$ ) |
| Hobby-uri |
Nu |
select multiple |
la lbera alegere |
| Modalitate de expediere a
newsletter-ului |
Da |
checkbox (3 controale) |
modalitatile prin care sa
primeasca newsletterului : email,posta si fax |
| Butoane pentru SUBMIT si RESET |
Da |
butoane (2) |
|
1. Sa se creeze formularul in HTML
2. Sa se preia in PHP variabilele din formular si sa se afiseze intr-un
tabel