Elucubrato da saibal
Addì 21 Dicembre 2001
Il modulo “suggerisci il sito ad un amico”
La prima cosa che dovrebbe balzare agli occhi è che il tag <FORM> non ha dichiarato l'action che invece, in un normale modulo html, sarebbe impostato su mailto:indirizzo@mail.it.
La risposta a questo dilemma è presto detta: l'action del form, solitamente, contiene l'email del destinatario ma il nostro scopo è renderlo dinamico e non statico; proprio per questo motivo utilizziamo javascript. Al momento di premere INVIO, infatti, il form richiama una funzione chiamata destin(); queste poche linee di codice hanno parecchie funzioni:
N.B. Ricordiamoci che il conteggio degli elementi in un form avviene partendo dall'elemento numero 0
1 | var destinatario=document.forms[0].elements[1].value; |
La variabile destinatario corrisponderà al valore scritto nel secondo campo del form (il campo email del distinatario; partendo da zero, l'elemento 1 corrisponde appunto al secondo input).
1 | var link = "http://www.html.it"; |
La variabile link contiene l'url del sito da suggerire.
1 | var messaggio_iniziale = "Messaggio inviato a " + destinatario; |
È il messaggio iniziale dell'email; la variabile "destinatario" verrà sostituita, naturalmente, con l'indirizzo inserito nel form.
1 | funz_destinatario = "mailto:" + destinatario + "?subject=Sito da visitare!!"; |
Se prima abbiamo visto che la variabile destintario corrispondeva al valore del secondo campo del form (email), adesso dichiariamo che funz_destinatario sarà uguale alla stringa mailto: ….. da inserire nell'action del form.
È ovvio che ‘+ destinatario +‘ verrà sostituito con l'indirizzo inserito dal visitatore ed infine notiamo anche che è stato aggiunto un soggetto predefinito all'email: Sito da visitare!!.
1 | document.forms[0].action = funz_destinatario; |
È questa una stringa chiave; si può "leggere" che l'action del form deve essere uguale a funz_destinatario che, come abbiamo appena visto, sarà uguale a "mailto:indirizzo_destinatario?subject=Sito da visitare!!".

Vota: %SAIBAL_PERCENTAGE%%
Lascia un Commento