Moduli (forms)


Vedremo di seguito come dotare i documenti HTML di possibilitá di interazione verso l'utente mediante l'iserzione di apposite aree di inserimento testo, menú di selezione eccetera che consentono all'utente di inserire informazioni che potremo in seguito farci inviare.

Il tag che sovrintende alla gestione di questi moduli (forms) di inserimento dati é <form> chiuso dal suo corrispettivo </form>.

Al suo interno, potremo inserire uno o piú tag <input> che opportunamente parametrizzati ci consentono di gestire strumenti di input quali aree di testo, radio button, password, check box, pulsanti di azione.

Vediamo ora i vari parametri dei diversi tags.

<form></form>
I parametri supportati sono tre e cioé action, method ed enctype; vediamoli in dettaglio.

action
con action="......" si definisce l'URL che elaborerá il contenuto del form, essa puó essere la chiamata a un programma residente sul server che, mediante il protocollo CGI riceverá i dati del form e li elaborerá secondo quanto previsto dal programma stesso oppure un semplice mailto:tizio@server.com che provvedrá ad inviare mediante posta elettronica i dati del form al'indirizzo specificato (nota: mailto non &eeacute; supportato dalle versioni piú vecchie dei browser, quindi, per compatibilitá assoluta occorrerebbe ricorrere ad apposito programma CGI anche per il solo invio via posta dei dati del form)
method
questo parametro definisce il modo con cui il contenuto del modulo verrá passato al programma che deve elaborarlo.
Con method="post" i dati verranno passati mediante lo standard input; con method="get" i dati verranno inviati al server accodati alla URL del programma che deve elaborarli che li assegnerá a una variabile ambiente dalla quale il programma di elaborazione li recupererá.
Il metodo GET é stato il primo metodo utilizzato ed é supportato da tutti i server per contro, puó dare problemi di affidabilitá e soffre del fatto che, essendo il passaggio di informazioni realizzato tramite variabili d'ambiente, la lunghezza delle stesse non puó superare i limiti imposti alle variabili d'ambiente dal server su cui gira l'applicazione incaricata dell'elaborazione dei dati.
Il metodo POST &eeacute; piú recente, piú sicuro e non ha limitazioni relative alla lunghezza dei dati gestibili in quanto lo stream di standard input puó avere qualunque lunghezza.
enctype
questo parametro definisce il metodo di codifica dei dati solo se il metodo di trasferimento dei dati é stato impostato su POST.
Normalmente questo attributo non é necessario, solo nel caso si utilizzi come action il giá visto mailto:...... puó essere utile provare come valori di enctype quanto segue:
enctype="application/x-www-form-urlencoded"
oppure
enctype="text/plain"
da scegliere in funzione del client di posta utilizzato.

<input type>
Questo tag, che con i suoi vari attributi puó gestire campi di testo, liste, menú non richiede il corrispettivo tag di chiusura.
Esaminiamo ora i vari attributi disponibili per input type di input:

text
con input type="text" il browser visualizzerá una casella per l'input di testo; questa cesella ha per prima cosa bisogno di un nome che la identifiche a fronte del programma che dovrá elaborare il contenuto del form; a questo si provvede con il parametro name, avremo quindi:
<input type="text" name="pippo">
la stessa casella, puó inizializzata con un valore di default con il parametro value, avremo quindi:
<input type="text" name="pippo" value="bla bla">
il browser, visualizzerá una casella lunga 20 caratteri; é comunque possibile modificare questa lunghezza mediante il parametro size, avremo quindi:
<input type="text" name="pippo" value="bla bla" size="30">
puó essere fissata la lunghezza massima con il parametro maxlenght, avremo quindi:
<input type="text" name="pippo" value="bla bla" size="30" maxlenght="28">
password
con input type="password" il browser visualizzerá una casella di testo il cui input verrá visualizzato durante l'inserimento come una serie di asterischi, tutti gli altri parametri visti per text valgono anche per questo parametro.
radio, checkbox
con input type="radio" il browser visualizzerá una serie di radio button (uno per ogni tag input type="radio") di cui solo uno puó essere selezionato, mentre con input type="checkbox" viene visualizzata una serie di caselle (una per ogni tag input type="checkbox") di cui é possibile selezionarne piú di uno.
Per ognuno di questi tag di input é indispensabile specificare un parametro di value che verrá passato al programma di elaborazione.
L'ulteriore parametro checked permette di preselezionare uno (radio) o piú (checkbox) caselle; avremo quindi ad esempio:
<input type="radio" name="pippo" value="val 1" checked>
<input type="radio" name="pippo" value="val 2">

<input type="checkbox" name="pippo" value="ok">
<input type="checkbox" name="pluto" value="ok">

Attenzione !

Per un corretto passaggio dei parametri, nel caso di piú tag di input di tipo radio presenti nello stesso form essi possono avere lo stesso nome ma valori diversi, nel caso invece di piú tag di input di tipo checkbox presenti nello stesso form essi devono avere nomi diversi e lo stesso valore

Per entrambi, il testo che segue il segno di maggiore relativo alla chiusura del tag verrá utilizzato come etichetta.
hidden
Questo tipo di input in realtá non visualizza nulla a video ma mediante l'impostazione di opportuni valori per name e value possono essere ritornate al programma di elaborazione informazioni riguardanti, ad esempio, il punto da cui &eeacute; stato richiamato il form.
reset
Questo parametro, visualizza un pulsante che, se attivato, riporta tutti i campi del form ai valori di default.
submit
Questo parametro, visualizza un pulsante che, se attivato, invia i dati contenuti nel form al server per l'elaborazione
Per questi ultimi due parametri del tag input type= possono essere impostati valori personalizzati per le etichette mediante il parametro value, allo stesso modo, al posto dei pulsanti di default possono essere visualizzate delle immagini mediante il parametro src che viene ad assumere la stessa funzione e sintassi di img src=.....

<select></select>
Questo tag, gestisce le liste pull-down e anche per esso, occorre definire un nome con il consueto parametro name="......".
Gli elementi della lista, sono gestite dal tag <option> che non richiede tag di chiusura e utilizza il testo che lo segue come elemento della lista, per ognuno di essi, occorre definire un value che verrá passato al programma di elaborazione; nel caso, si voglia impostare un valore preselezionato, utilizzare nell'ambito del tag option interessato il parametro selected.
Vediamo ora un piccolo esempio:
<select name="personaggi">
<option value="paperino">Paperino
<option value="topolino" selected>Topolino
<option value="pluto">Pluto
</select>

Nel caso si vogliano visualizzare piú elementi della lista contemporanemente (il default é 1) occorre specificare il parametro size per il tag select; ad esempio con size="4" vengono visualizzata una finestra che contiene 4 elementi della lista contemporaneamente.

<textarea></textarea>
Con questo tag, si gestiscone le finestre di input per testi lunghi.
Oltre al nome, da impostare sempre con name="....." é possibile impostare le dimensioni, in righe e colonne di questa finestra con i parametri rows=".." e cols=".." nell'ambito del tag textarea
Come ultimo parametro di textarea abbiamo wrap che serve a gestire la modalitá di wrapping all'interno della finestra.
Di default, wrap é off e cioé il testo verrá ritornato al programma di elaborazione cosí come inserito; nel caso si imposti wrap="virtual" il testo viene mandato a capo automaticamente nell'ambito della finestra ma restituito al programma di elaborazione come una sola lunga stringa, nel caso invece si imposti wrap="phisical" il testo verrá formattato come nel caso precedente e inviato al programma di elaborazione con questa formattazione.
Riassumendo, possiamo avere:
<textarea name="commento" rows="3" cols="30" wrap="virtual">
Eventuale testo di default
</textarea>


Nota: é: possibile utilizzare i form anche solo per la creazione di pulsanti da utilizzare per il caricamento di determinate pagine HTML in sostituzione di pulsanti realizzati con immagini il tutto allo scopo di alleggerire la pagina mantenendo nel contempo un buon look.
Ecco la sintassi da utilizzare:
<form name="qualunque" method="get" action="pagina.html">
<input type="submit" value="Carica la pagina">
</form>

Per finire, ecco un esempio concreto di form che, se vorrete, potete compilare e inviarmi

Torna all'indice