ASP - AJAX e ASP
- Pagina precedente Introduzione a AJAX
- Pagina successiva Database AJAX
AJAX viene utilizzato per creare applicazioni più dinamiche.
Esempio AJAX ASP
Il seguente esempio dimostra come il sito web comunica con il server quando l'utente digita i caratteri nel campo di input:
Esempio
Inserisci le lettere (A - Z) nel campo di input seguente:
Suggerimento:
Esempio pratico - Pagina HTML
Quando l'utente digita i caratteri nel campo di input superiore, viene eseguita la funzione "showHint()". Questa funzione viene attivata dall'evento "onkeyup":
<!DOCTYPE html> <html> <head> <script> function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// Codice per IE7+, Firefox, Chrome, Opera, Safari} xmlhttp=new XMLHttpRequest(); } else {// Codice per IE6, IE5} xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.asp?q="+str,true); xmlhttp.send(); } </script> </head <body> <p><b>Inserisci caratteri inglesi nell'input box:</b></p> <form> Nome: <input type="text" onkeyup="showHint(this.value)" size="20"> </form> <p>Suggerimenti: <span id="txtHint"></span></p> </body> </html>
Spiegazione del codice sorgente:
Se l'input box è vuoto (str.length==0), la funzione svuoterà il contenuto del placeholder txtHint e uscirà dalla funzione.
Se l'input box non è vuoto, showHint() eseguirà i seguenti passaggi:
- Creare un oggetto XMLHttpRequest
- Creare una funzione che viene eseguita quando il server è pronto
- Inviare una richiesta al file sul server
- Attenzione a aggiungere i parametri (q) alla fine dell'URL (che contiene il contenuto dell'input box)
File ASP
Questa pagina del server chiamata con JavaScript è un file ASP chiamato "gethint.asp".
"Il codice sorgente in gethint.asp verifica l'array dei nomi e poi restituisce i nomi corrispondenti al browser:"
<% response.expires=-1 dim a(30) 'Riempi l'array con i nomi a(1)="Anna" a(2)="Brittany" a(3)="Cinderella" a(4)="Diana" a(5)="Eva" a(6)="Fiona" a(7)="Gunda" a(8)="Hege" a(9)="Inga" a(10)="Johanna" a(11)="Kitty" a(12)="Linda" a(13)="Nina" a(14)="Ophelia" a(15)="Petunia" a(16)="Amanda" a(17)="Raquel" a(18)="Cindy" a(19)="Doris" a(20)="Eve" a(21)="Evita" a(22)="Sunniva" a(23)="Tove" a(24)="Unni" a(25)="Violet" a(26)="Liza" a(27)="Elizabeth" a(28)="Ellen" a(29)="Wenche" a(30)="Vicky" 'Ottiene il parametro q dall'URL q=ucase(request.querystring("q")) 'Se la lunghezza q>0, vengono cercati tutti i suggerimenti nell'array if len(q)>0 then hint="" for i=1 to 30 if q=ucase(mid(a(i),1,len(q))) then if hint="" then hint=a(i) else hint=hint & " , " & a(i) fine if fine if next fine if 'Se non viene trovato alcun suggerimento, viene visualizzato "nessuna suggerimento" 'o visualizza i valori corretti if hint="" then response.write("nessuna suggerimento") else response.write(hint) fine if %>
Spiegazione del codice sorgente:
Se JavaScript invia qualsiasi testo (cioè strlen($q) è maggiore di 0), accade:
- Cercare corrispondenze dei caratteri provenienti da JavaScript
- Se non viene trovato alcun corrispondente, impostare la stringa di risposta su "no suggestion"
- Se viene trovato un nome o più nomi corrispondenti, impostare la stringa di risposta con tutti i nomi
- Inviare la risposta alla placeholder "txtHint"
- Pagina precedente Introduzione a AJAX
- Pagina successiva Database AJAX