ELEMENTI DEL LINGUAGGIO HTML |
I forms costituiscono probabilmente il metodo di interazione con l'utente più usato dai siti presenti su Internet. Con essi è possibile creare dei questionari, dei moduli per l'interrogazione dei motori di ricerca, dei moduli d'invio posta, dei carrelli della spesa virtuali, e quant'altro in genere possa venire in mente all'amministratore del server (sito).
Il server dispone di programmi (chiamati uscite, o gateways) che possono essere invocati per elaborare le informazioni inviate dall'utente. Queste informazioni devono essere formattate secondo un certo protocollo, il quale stabilisce anche il formato dei dati eventualmente restituiti all'inviante. Il protocollo di cui si parla è il CGI (Common Gateway Interface), I programmi residenti sul server sono in genere scritti in Perl, un duttile e potente linguaggio batch che nasce dal mondo Unix, ma che è disponibile per tutte le principali piattaforme odierne. Tuttavia, è bene ricordarlo, un'applicazione CGI può essere scritta in qualsiasi linguaggio compilato. I programmi risiedono in genere nella directory cgi-bin ed hano di solito estensione .cgi.
Ovviamente, i form non esauriscono le possibilità di interazione tra un utente ed un
server che ospita determinate pagine HTML. Qualunque programma di servizio può essere
invocato tramite un opportuno collegamento con l'URL corretto. Ad esempio, è possibile
chiedere la visualizzazione sulla propria homepage di un contatore degli accessi.
Come di consueto, iniziamo con la presentazione del tag che definisce un form: <FORM>...</FORM>.
I parametri immediatamente utilizzabili (da inserire dunque all'interno del tag d'inizio),
sono i seguenti:
ACTION | Indica generalmente una URL alla quale si desidera inviare il contenuto del form.
Solitamente, la URL indica un programma che segue lo standard CGI e che è stato
creato appositamente per far fronte a quelle specifiche richieste da parte degli utenti.
Un tipico esempio d'utilizzo è il seguente: <FORM ACTION="http://indirizzo_sito/cgi-bin/programma.cgi">. |
METHOD | Può assumere uno solo dei valori POST e GET: METHOD=post oppure METHOD=get. Le differenze fra i due metodi riguardano il modo in cui i dati vengono inviati al programma CGI preposto alla loro analisi. Col metodo GET i dati inseriti nel modulo vengono inviati come parte dell'URL richiesto, ovvero vengono attaccati all'URL originale e comunicati al server attraverso una richiesta (di qui il nome GET). Col metodo POST il contenuto del modulo viene semplicemente spedito a un indirizzo specificato, ovvero tutti i campi vengono riuniti ed elaborati per formare uno o più messaggi di e-mail. |
ENCTYPE | Se il protocollo non prevede un formato per i dati inviati al server, con l'attributo
ENCTYPE è possibile specificarlo, Se viene utilizzato il metodo POST il formato è quello della posta elettronica: MIME (Multipurpose Internet Mail Extension), che permette di inviare non solo testo ma anche programmi, immagini, filmati, suono, ecc, opportunamente codificati (e decodificati in arrivo). In caso contratio, il default è: application/x-www-form-urlencoded. |
Dopo questa necessaria introduzione, passiamo in rassegna i vari oggetti che possiamo
inserire in un form, precisando che tali tags devono essere contenuti fra quelli di
definizione form: <FORM>...</FORM>
Il tag <INPUT> definisce un campo nel quale è possibile inserire dei
dati. I suoi parametri possibili sono elencati nella tabella seguente:
TYPE | Rappresenta il parametro più importante, in quanto consente di specificare quale tipo
di campo si desidera creare. I valori possibili sono elencati di seguito:
|
Una volta definito il tipo di campo che si desidera inserire nel form tramite il parametro
TYPE, è possibile specificarne le caratteristiche. Per raggiungere questo scopo
sono previsti numerosi parametri aggiuntivi, molti dei quali non utilizzabili da tutti i
tipi di campo. Eccoli di seguito:
ALIGN | Viene utilizzato con le immagini cliccabili (TYPE=image), e assume lo stesso
significato e gli stessi valori dell'omonimo parametro utilizzato nelle immagini
convenzionali per allinearle rispetto al testo circostante. I valori possibili sono
dunque: ALIGN=top|middle|bottom|left|right |
CHECKED | Viene utilizzato con i campi logici TYPE=checkbox oppure TYPE=radio, e specifica che, al momento della visualizzazione del form (oppure dopo un click sul pulsante RESET), tali campi devono risultare attivi (posizione yes). |
MAXLENGTH | Specifica il numero massimo di caratteri che possono essere inseriti in un campo. Non va confuso con il parametro SIZE che, invece, specifica le dimensioni fisiche che il campo avrà sul video. |
NAME | Specifica il nome del campo. E' molto importante che venga definito, in quanto consente al server di accedere direttamente al campo. Non è necessario con TYPE=submit e TYPE=reset. |
SIZE | Specifica la dimensione massima che il campo avrà a disposizione sul video. Non va confuso con il parametro MAXLENGHT che, invece, specifica le dimensioni logiche del campo. |
SRC | Specifica la URL dove è possibile trovare l'immagine cliccabile. Viene utilizzato con TYPE=image. |
VALUE | Definisce il valore iniziale che un campo deve avere al momento della visualizzazione del form, o dopo un click sul tasto RESET. Deve contenere un valore in sintonia con il tipo di campo cui si riferisce. E' richiesto con TYPE=radio e TYPE=checkbox. |
Vediamo ora un esempio pratico relativo alle nozioni fin qui apprese.
Codice HTML | Risultato a video |
<INPUT TYPE=checkbox NAME="Italia" VALUE="Y">Italia
|
Italia Stati Uniti Canada Giappone Francia Senegal |
<INPUT TYPE=image NAME="mappa" SRC="logo1.gif"
ALIGN=bottom>
|
Questo è un testo allineato in basso. |
<INPUT TYPE=password NAME="pwd"> |
|
<INPUT TYPE=radio NAME="nazione" VALUE="Italia">Italia
|
Francia Stati Uniti Canada Giappone Senegal |
<INPUT TYPE=reset VALUE="Pulsante di Reset">
|
|
C.A.P. <INPUT TYPE=text NAME="cap" SIZE=5 MAXLENGTH=5>
|
C.A.P. Nome1: Nome2: Si noti l'utilizzo dei parametri SIZE e MAXLENGTH ed il conseguente scrolling orizzontale. |
Il tag <SELECT>...<SELECT> definisce un campo dotato di piu' valori
possibili, comodamente selezionabili tramite menu. Questo tag viene utilizzato in
associazione al tag <OPTION>.
Un tipico esempio è il seguente:
Codice HTML | Risultato a video |
---|---|
<SELECT NAME="stati">
|
|
<SELECT NAME="nazioni" SIZE=4 MULTIPLE>
|
Dopo aver visto l'esempio, possiamo spiegare nel dettaglio i possibili parametri:
Parametri del tag SELECT | Descrizione |
---|---|
MULTIPLE | Consente la selezioni di più voci del menu. Per selezionare più voci, è sufficiente cliccare sopra ognuna tenendo premuto il tasto CTRL |
NAME | Specifica il nome del campo che verrà inviato al server all'invio del form. |
SIZE | Specifica il numero di voci visibili del menu. |
Parametri del tag OPTION | Descrizione |
---|---|
SELECTED | La voce di menu cui si riferisce verrà identificata come preselezionata alla prima visualizzazione del form, oppure dopo un click sul tasto RESET |
VALUE | Specifica il valore che verrà inviato al server nel caso che la voce venga selezionata dall'utente. |
Se il form necessita di un campo libero (p.es. per inviare dei commenti o delle
richieste d'informazioni), è necessario ricorrere al tag <TEXTAREA>...</TEXTAREA>.
Vediamo come di consueto i parametri disponibili ed un esempio.
NAME | Specifica il nome del campo che verrà inviato al server. |
ROWS | Indica il numero di righe che costituiranno l'area d'immissione dati. |
COLS | Indica il numero di colonne (caratteri per riga) che costituiranno l'area d'immissione dati. |
Codice HTML | Risultato a video |
---|---|
<TEXTAREA NAME="note" ROWS=10 COLS=40> Inserite in questo spazio i vostri commenti </TEXTAREA> |
Per concludere l'argomento dei forms, ecco un esempio reale che racchiude i concetti fin qui appresi.
Nome: | |
Indirizzo: | |
Città: | |
Età: | 0-13 14-17 18-29 30+ |
Commenti: | |
<FORM METHOD=post ACTION="http://mio.sito.com/cgi-bin/prova.pl"> <TABLE BORDER=0 CELLSPACING=5 CELLPADDING=5> <TR> <TD>Nome: <TD> </TR> <TR> <TD>Indirizzo: <TD> </TR> <TR> <TD>Città: <TD> <SELECT NAME="citta"> <OPTION VALUE="or">Oristano <OPTION VALUE="ca" SELECTED>Cagliari <OPTION VALUE="nu">Nuoro <OPTION VALUE="ss">Sassari </SELECT> </TD> </TR> <TR> <TD>Età: <TD> 0-13<INPUT TYPE=radio NAME="eta" VALUE="0-13"> 14-17<INPUT TYPE=radio NAME="eta" VALUE="14-17"> 18-29<INPUT TYPE=radio NAME="eta" VALUE="18-29" CHECKED> 30+<INPUT TYPE=radio NAME="eta" VALUE="30+"> </TD> </TR> <TR> <TD VALIGN=top>Commenti: <TD> <TEXTAREA NAME="note" ROWS=10 COLS=50> Inserite in questo spazio i vostri commenti </TEXTAREA> </TD> </TR> <TR> <TD> </TD> <TD> <INPUT TYPE=submit VALUE="Invia il Modulo"> <INPUT TYPE=reset VALUE="Annulla"> </TD> </TR> <TR> <TD> </TD> <TD> </TD> </TR> </TABLE> <BR> <BR> </FORM>