Uno dei fattori che ha decretato il successo del Web è senz'altro la possibilità di interagire: la possibilità cioè di iscriversi a servizi di vario tipo (ad esempio mailing list), ma soprattutto di partecipare a vere e proprie comunità virtuali, come il forum di HTML.it.
Per organizzare questo genere di servizi è necessario raccogliere in qualche modo i dati dell'utente: per farlo si utilizzano, in maniera molto semplice, i moduli (cioè i form).
L'invio dei dati è solitamente organizzato in due parti:
- una pagina principale
- una pagina secondaria
cgi, oppure una pagina asp, php, jsp o altro
Noi ci occuperemo della sola pagina principale, dal momento che il modo in cui struttura una pagina di programmazione esula dagli obiettivi della presente guida.
Name e action
Per creare una pagina con dei moduli, bisogna utilizzare l'apposito tag <form>: si tratta di un elemento di blocco, come il <p>, quindi il tag <form> lascia uno spazio prima dell'apertura e dopo la chiusura.
...
</form>
Nel caso in non si desideri avere dello spazio superfluo è possibile modificare i bordi del tag utilizzando i fogli di stile. Con questa semplice sintassi:
<form name="datiUtenti" style="border:0px"action="paginaRisposta.php">
Come si può vedere, "name" "action"
Grazie all'"action"
vedremo in una delle prossime lezioni come utilizzare concretamente questa sintassi.
Method
Quando creiamo un form possiamo scegliere due metodi di invio: GETe POST.
Con il metodo GET la pagina di risposta viene contattata e idati vengono inviati in un unico step. Nell'URL della pagina di risposta potremo allora vedere tutti i parametri nella barra degli indirizzi (piùprecisamente nella "query string", cioè nella "stringa di interrogazione") secondo questa forma:
i dati (nella forma nome del campo = valore del campo
Alcuni server hanno tuttaviahanno delle limitazioni per quel che riguarda il metodo GET 255 caratteri GET
<form name="datiUtenti" action="paginaRisposta.php"method="GET">
Nel metodo POST
In questo caso non ci sonolimiti sulla lunghezza dei caratteri. La sintassi è:
Enctype (tipo di codifica)
Prima di passare i dati alla pagina di risposta, che si trova sul server, questi vengono codificati dal browser in modo da non poter dare adito ad errori(ad esempio gli spazi vengono convertiti in "+"). Normalmente non è necessario specificare come si vuole effettuare la codifica dei dati, perché è sottintesol'invio di semplice testo.
A volte però, come quando è necessario inviare un'immagine, è tuttavia indispensabile dichiarare espressamente quali dativogliamo inviare. Per farlo è necessario utilizzare l'attributo "enctype" ("encoding type", cioè "tipodi codifica").
Come dicevamo normalmente non è necessario farlo, perché viene sottintesoquesto tipo di sintassi:
Ma nel caso di invio di immagini dovremo dichiarare:
target
Grazie all'attributo "target" è possibile far aprire i dati del form in una pagina differente rispetto a quella corrente (o in una determinata parte di un frameset):