I formulari interattivi permettono agli autori di pagine web di dotare le proprie pagine web con degli elementi interattivi che danno la possibilità ad esempio di avere un dialogo con gli internauti, sulla falsa riga dei coupon-risposta presenti in alcuni negozi.
Il lettore inserisce delle informazioni riempiendo i campi o cliccando su dei bottoni, poi sul bottone di invio (submit) verso un URL, cioè in maniera generale ad un indirizzo e-mail o a uno script di pagina web dinamica come PHP, ASP o uno script CGI.
I formulari sono delimitati dal tag <FORM> ... </FORM>, un tag che permette di raggruppare più elementi del formulario (bottoni, campi di digitazione,…) e che possiede gli attributi obbligatori seguenti :
Ecco la sintassi del tag FORM :
<FORM METHOD="POST" ou "GET" ACTION="url" ENCTYPE="x-www-form-urlencoded"> ... </FORM>
E qualche esempio di tag FORM :
<FORM METHOD=POST ACTION="mailto:webmaster@kioskea.net"> <FORM METHOD=GET ACTION="http://it.kioskea.net/cgi-bin/script.cgi">
Il tag FORM costituisce in qualche modo un contenitore che permette di raggruppare degli elementi che permetteranno all'utente di scegliere o di inserire dei dati, gruppo di dati che saranno inviati all'URL indicato nell'attributo ACTION del tag FORM attraverso il metodo indicato dall'attributo METHOD.
E' possibile inserire qualsiasi elemento HTML di base in un tag FORM (testo, bottoni, tabelle, link,…) ma è soprattutto interessante interessante inserire degli elementi interattivi. Questi elementi interattivi sono :
Una volta che il formulario è inviato (con il bottone submit), i dati presentati nel formulario sono inviati allo script CGI sotto forma di coppia nome/valore, cioè un insieme di dati rappresentati dal nome dell'elemento del formulario, il carattere "=", poi il valore associato. L'insieme di queste coppie nome/valore sono separate fra loro da degli spazi (carattere &). I dati inviati assomigliano quindi a questo :
champ1=valeur1&champ2=valeur2&champ3=valeur3Nel caso del metodo GET (invio di dati attraverso l'URL), l'URL assomiglierà a una stringa del tipo :
http://it.kioskea.net/cgi-bin/script.cgi?champ1=val1&champ2=val2
Il tag INPUT è il tag essenziale dei formulari, dato che permette di creare un buon numero di elementi "interattivi". La sintassi di questo tag è la seguente :
<INPUT type="Nome del campo" value="Valore di default" name="Nome dell'elemento">L'attributo name è essenziale dato che permetterà allo script CGI di conoscere il campo associato alla coppia nome/valore, cioè il nome del campo sarà seguito dal carattere "=" poi dal valore inserito dall'utente, o in caso contrario dal valore di default indicato dall'attributo valore.
Il tag TEXTAREA permette di definire una zona di inserimento più vasta paragonata alla semplice linea di inserimento che propone il tag INPUT. Questo tag ha i seguenti attributi :
Il tag SELECT permette di creare una lista scorrevole di elementi (precisti dai tag OPTION all'interno della lista). Gli attributi di questo tag sono :
I formulari possono essere impaginati attraverso delle tabelle (cosa consigliata per avere un'impaginazione più accurata). Ecco un esempio che riassume i punti descritti finora e che mostra come impaginare un formulario con l'aiuto di una tabella :
<FORM method=post action="cgi-bin/script.pl"> Registrazione di un utente <TABLE BORDER=0> <TR> <TD>Cognome</TD> <TD> <INPUT type=text name="cognome"> </TD> </TR> <TR> <TD>Nome</TD> <TD> <INPUT type=text name="nome"> </TD> </TR> <TR> <TD>Sesso</TD> <TD> Uomo : <INPUT type=radio name="sesso" value="M"> <br>Donna : <INPUT type=radio name="sesso" value="F"> </TD> </TR> <TR> <TD>Funzione</TD> <TD> <SELECT name="funzione"> <OPTION VALUE="insegnante">Insegnante</OPTION> <OPTION VALUE="studente">Etudiant</OPTION> <OPTION VALUE="ingegnere">Ingénieur</OPTION> <OPTION VALUE="pensionato">Retraité</OPTION> <OPTION VALUE="altro">Autre</OPTION> </SELECT> </TD> </TR> <TR> <TD>Commenti</TD> <TD> <TEXTAREA rows="3" name="commenti"> Inserite qui i vostri commenti</TEXTAREA> </TD> </TR> <TR> <TD COLSPAN=2> <INPUT type="submit" value="Inviare"> </TD> </TR> </TABLE> </FORM>
Ecco il risultato di questo codice HTML
| Tag | Attributo | Valore | Risultato | Effetto Visuale |
|---|---|---|---|---|
| <FORM> ... </FORM> | METHOD | POST GET |
||
| ACTION | invio all'indirizzo indicato | |||
| ENCTYPE | specifica il tipo di codifica utilizzato | |||
| <INPUT> | TYPE | submit | effettua l'ACTION nel tag <FORM> | |
| text | semplice linea di testo la cui lunghezza è data dall'attributo size |
|||
| reset | cancella il contenuto del formulario | |||
| radio | bottone radio | |||
| checkbox | casella da selezionare | |||
| NAME | Nome | |||
| SIZE | Dimensione del testo | |||
| <TEXTAREA> ... </TEXTAREA> | NAME | Zona di testo | ||
| ROWS | ||||
| COLS | ||||
<SELECT>
</SELECT> |
NAME | |||
| MULTIPLE | Più scelte possibili | |||
| <OPTION> ... </OPTION> | SELECTED | Opzione di default | ||
| VALUE | Valore forzato |