Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Dai, facciamo qualcosa un po' più divertente ;o)

Il primo esempio concreto.
Il primo esempio concreto.
Link copiato negli appunti

Al giorno d'oggi lavorare con queste tecnologie e un po' come giocare con il Lego. 
Metto 2 mattoni rossi da 2 + 2 mattoni verdi da 2, ci metto sopra un bel mattoncino blue da 6 e: "hey presto, ho fatto un ponte!".

Vediamo cosa si può fare con i pezzi di ASP, l'oggetto Response + l'oggetto Request.

Usando il metodo Write del Response siamo in grado di scrivere sullo schermo. Usando il
Request siamo in grado di leggere dallo schermo.

Per riferimento vi mostro il modello dell'oggetto Request:

Proprieta : TotalBytes
Collections : ClientCertificate, Cookies, Form, QueryString, ServerVariables
Metodi : BinaryRead

Come col Lego, con questi due oggetti siamo in grado di costruire un ponte fra una pagina e l'altra.

Cominciamo col costruire una pagina che raccoglie l'input da una form e restituisce una risposta appropriata.
Chiamiamola il file chiedimi.asp

<html><head><title>Chiedimi</title></head>
<body>
<%
Response.Write "<form action='rispondimi.asp' method='post'><br>"
Response.Write "come ti chiami?"
Response.Write "<input type='text' name='nome'><br>"
Response.Write "di che citta' sei?"
Response.Write "<input type='text' name='citta'><br>"
Response.Write "<input type='submit' value='dimmelo'>" 
Response.Write "</form>"
%>
</body>
</html>

Vedi subito cosa succede qui, no? Naturalmente avremmo potuto scrivere questo senza ASP, direttamente in HTML ma volevo solo farti vedere cosa si può fare con il Response.

Adesso costruiamo una pagina per la risposta chiamiamola rispondimi.asp
Lo so che il Request lo abbiamo appena guardato ma, sono sicuro che capirai, dopo lo guarderemo più in dettaglio.

<html><head><title>Rispondimi</title></head>
<body>
<%
nome = Request.Form("nome")
citta = Request.Form("citta")
Response.write "Ciao " & nome & ",<br> Oooh, " & citta & "&46;&46;&46;, mi piacerebbe venire&46;&46;&46;<br>"
%>
</body>
</html>

Semplice no?
L'oggetto Request funziona con un gruppo di collezioni di dati. 
In questo caso l'input dalla pagina precedente è dentro alla collezione Form. Poiché noi sappiamo già i nomi dei campi li possiamo chiamare direttamente ma se non li sapessimo, potremmo trovarli così:

<html><head><title>Rispondimi</title></head>
<body>
<%
'per ogni dato nella collezione scrivi dato e valore del dato
For each dato in Request.Form
Response.Write dato & " = " & Request.Form(dato) & "<br>"
Next
%>
</body>
</html>

Questo modo ha il vantaggio di accedere il nome del controllo insieme con il valore. Per esempio se sono io che rispondo, il programma restituisce:

Nome = Giorgio
Citta = Surfers Paradise

Il ponte è fatto no? 
È facile passare valori da un pagina all'altra con ASP? 

Non è comunque l'unico modo per passare variabili da una pagina a un'altra. Dopo tutto non possiamo mettere form dappertutto e non sempre le variabili che vogliamo passare hanno a che fare con i nostri utenti. Spesso abbiamo bisogno di mandare delle flags per avvertirci su che corso prendere in dipendenza da un valore o un altro. 
Per esempio se volessimo combinare i due file chiedimi.asp e rispondimi.asp in uno solo, potremmo farlo? E se la risposta è sì, come facciamo?

Segue domanda_rispondi.asp

<html><head><title>Domanda e Rispondi</title></head>
<body>
<%
clickato = Request.Querystring("clickato")
'se cliccato ha un valore, il cliente ha cliccato il bottone della form
If clickato then
nome = Request.Form("nome")
citta = Request.Form("citta")
Response.write "Ciao " & nome & ",<br> Oooh, " & citta & "&46;&46;&46;, mi piacerebbe venire&46;&46;&46;<br>"
Else
'altrimenti è appena entrato in questa pagina 
Response.Write "<form action='domanda_rispondi.asp?clickato=true' method='post'>"
Response.Write "come ti chiami?"
Response.Write "<input type='text' name='nome'><br>"
Response.Write "di che citta' sei?"
Response.Write "<input type='text' name='citta'><br>"
Response.Write "<input type='submit' value='dimmelo'>" 
Response.Write "</form>"
end if
%>
</body>
</html>

Non c'è una grande differenza nel modo con cui abbiamo operato, ma guarda alla linea:

<form action='domanda_rispondi.asp?clickato=true' method='post'>

Qui prima di tutto rimandiamo il file in sé stesso passandogli un valore clickato=true. In questo caso il valore di clickato è contenuto nella collezione QueryString dell'oggetto Request.
Quindi lo possiamo recuperare semplicemente con:

clickato = Request.Querystring("clickato")

In questa maniera il valore è passato insieme all'URL (infatti lo vedi nell'URL nel browser): http://localhost/domanda_rispondi.asp?clickato=true


Ti consigliamo anche