ASP vs HTML


Folosirea formularelor şi lucrul cu baze de date

Să presupunem că aţi dori să faceţi un mic sondaj pe situl Dvs, despre ultimele îmbunătăţiri pe care le-aţi adus, ca să aflaţi ce gândesc vizitatorii. Cel mai simplu este să scrieţi: „trimiteţi-ne opinia Dvs prin email la adresa adresamea@domeniulmeu.ro”. Dar ce ne facem dacă utilizatorul este într-o cafenea Internet şi nu la calculatorul unde are configurată adresa de email: nu vă poate scrie!

Soluţia cea mai elegantă este să faceţi un formular care să fie completat de utilizator, şi cu un click utilizatorul să vă trimită Dvs prin email răspunsurile lui. Folosind doar HTML nu veţi putea face, decât eventual apelând la un intermediar care oferă acest serviciu (exemplu Bravenet.com). În ASP este însă o joacă de copil! În primul rând scrieţi o pagină care poate fi chiar şi HTML, cu formularul.

Fişierul „formular.asp”

………………

<form method=post action=trimitedate.asp>
Nume: <input type=text name=nume><br>
Prenume: <input type=text name=prenume><br>
Vârsta: <input type=text name=varsta><br>
Opinia Dvs: <textarea name=opinia></textarea><br>
<input type=submit value=”Trimite raspunsul”><br>
</form>

……………..

Iar acum să vedem cum să facem să primim automat prin email aceste date. La modul general, cum să manipulăm informaţiile transmise prin intermediul formularelor. Simplu! Tot ce trebuie să facem este să apelăm funcţia Request.Form() şi să punem ca parametru numele controlului din formular a cărui valoare dorim să o aflăm. Să vedem.

Fişierul „trimitedate.asp”

………………

//extragem numele si prenumele si ii multumim pentru ca a completat formularul
Dragă <%=(Request.Form(„nume”)+” „+Request.Form(„prenume”)%>,
îţi mulţumim că ne-ai transmis opinia ta.
<%
//aici vom pune textul de trimis prin email
textemail=””
textemail+=”Ne-a scris „+Request.Form(„nume”)+” „+Request.Form(„prenume”)
textemail+=”, care are „+Request.Form(„varsta”)+” ani. ”
textemail+=”Opinia lui este: „+Request.Form(„opinia”)
//aici vine codul pentru trimiterea emailului cu continutul prelucrat mai sus
…………….
%>

……………..

Foarte simplu, într-adevăr! Nu am inclus codul prin care sunt trimise efectiv datele prin email pentru că nu face subiectul acestui articol. Dar veţi în sit exemple de cod de trimitere a emailurilor cu CDONTS si ASPEmail. Şi dacă tot am ajuns aici, să spunem într-o mică paranteză că puterea ASP este mărită de componentele ASP care permit lucruri imposibil de făcut în HTML: trimitere de emailuri, transferuri FTP, captură de pagini, etc.

Am văzut deci cum parametrii trimişi unei pagini folosind simbolul semn de întrebare se extrag cu Request.QueryString(), iar cei trimişi prin formulare cu Request.Form(). Foarte intuitiv! Dar să trecem acum la baze de date, la interacţiunea cu ele. Puteţi folosi formularele pentru a popula cu informaţii o bază de date! Să spunem că nu doriţi trimiterea datelor prin email, ci stocarea opiniilor vizitatorilor într-o bază de date! Simplu. Urmăriţi codul de mai jos.

Fişierul „trimitedate.asp” – versiunea II

<%@ LANGUAGE = „JScript” %>

………………

//extragem numele si prenumele si ii multumim pentru ca a completat formularul
Dragă <%=(Request.Form(„nume”)+” „+Request.Form(„prenume”)%>,
îţi mulţumim că ne-ai transmis opinia ta.
<%
//extragem valorile completate de utilizator
n=””+Request.Form(„nume”)
p=””+Request.Form(„prenume”)
v=””+Request.Form(„varsta”)
o=””+Request.Form(„opinia”)
//pregatim conectarea la baza de date
objConnection = Server.CreateObject(„ADODB.Connection”)
objConnection.Open(„DRIVER={Microsoft Access Driver (*.mdb)};DBQ=”+Server.MapPath(‘opinii.mdb’))
//inseram valorile preluate din formular
//unde nu, pr, va, op sunt câmpurile din baza de date corespunzând la nume, prenume, vârstă şi opinie
//nume de câmpuri prescurtate forţat pentru aspectul grafic al exemplului
dbOp=objConnection.Execute(„INSERT INTO opinii (nu,pr,va,op) VALUES (‘”+n+”‘,'”+p+”‘,”+v+”,'”+o+”‘)”)
//inchidem conectarea la baza de date
objConnection.Close()
objConnection=null;
dbOp=null
%>

……………..

Şi acum să spunem că această bază de date de opinii este un fel de carte de oaspeţi. Priviţi în exemplul următor cum din câteva linii se afişează cartea de oaspeţi.

Fişierul „trimitedate.asp” – versiunea II

<%@ LANGUAGE = „JScript” %>

………………

<%
//pregatim conectarea la baza de date
objConnection = Server.CreateObject(„ADODB.Connection”)
objConnection.Open(„DRIVER={Microsoft Access Driver (*.mdb)};DBQ=”+Server.MapPath(‘opinii.mdb’))
//selectam toate valorile din baza de date cu opinii
dbOp=objConnection.Execute(„SELECT * FROM opinii”)
//o structura while pentru a parcurge toate inregistrarile din baza de date
while(!dbOp.EOF){
//afisam o opinie
Response.write(dbOp(„nu”)+” „+dbOp(„pr”)+” („+dbOp(„va”)+”)<br>”)
Response.write(dbOp(„op”)+”<p>”)
//trecem la urmatoarea inregistrare
dbOp.MoveNext()
}
//inchidem conectarea la baza de date
objConnection.Close()
objConnection=null;
dbOp=null
%>

……………..

Să tragem concluziile


Pagini: 1 2 3 4 5

Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (3 evaluări, media: 3,67 din 5)
Se încarcă...

2 comentarii

  1. Andrei spune:

    Sunt impresionat.

  2. Vio spune:

    Imi place cum gandesti. E ok.


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *