html519 Corso html 5, lezione 19. Roberto Abutzu su uiciechi.it, 2014-05. Diciannovesima parte: "I Moduli Form - Introduzione". I Moduli. Quando in una pagina web indichiamo un modulo, intendiamo un settore della pagina dove vengono contenuti degli elementi con cui l'utente ha la possibilità di interagire. Nello specifico, nei moduli ci sono dei campi dove è possibile scrivere, fare delle scelte, dove troviamo dei pulsanti da attivare. Per darvi una idea più precisa, in questi campi sono presenti tutti quegli elementi che abitualmente troviamo nelle finestre di dialogo del sistema operativo Microsoft. Questi elementi sono: - Campi di editazione. - Caselle combinate, dette anche a tendina. - Pulsanti radio. - Caselle di controllo. - I pulsanti di conferma invio dati. Come nelle finestre di dialogo, anche qui i pulsanti servono prevalentemente per confermare, annullare o inviare i dati inseriti nei campi precedenti. Sicuramente vi state chiedendo: perché questi campi nelle pagine web? Semplice! Man mano che la rete si è evoluta, è sempre stato più necessario un dialogo tra il sito e il visitatore. Nell'evoluzione dei siti, questi moduli, conosciuti anche come form, hanno permesso sempre di più di operare in rete. Il web non è solo lettura di intere pagine ma anche interazione col web stesso. Infatti, partiamo da un form composto dal solo campo di ricerca come può essere quello di un motore di ricerca, per esempio Google, per finire a un modulo di registrazione o di pagamento in uno store, form composti da molti più campi interattivi. I campi che più spesso incontriamo sono: - La ricerca. - L'iscrizione ad una newsletter. - User e password in aree riservate. - Campi di richiesta informazioni in aeroporti o sulle tratte ferroviarie. Oggi con l'aumento di blog e social network, troviamo aree per inserimento di commenti, possibilità di dare preferenze, risposte ad articoli di altri, eccetera. Quindi, mentre sino a 15 anni fa erano davvero pochi e molto ridotti, ora troviamo form praticamente ovunque e, opinione personale, anche dove realmente non è necessario. Quando bisogna affrontare la creazione di un modulo form, di solito bisogna prepararsi ad un duro lavoro nel linguaggio. Importante: 1. Questo è un corso base di html 5 e và considerato tale. 2. Partendo dal presupposto che chi legge questo corso non è a conoscenza delle versioni precedenti di questo linguaggio, cercherò di partire dall'inizio dei form, implementando le nuove specifiche html 5 individuando le differenze con quelle specifiche ancora valide e quindi utilizzabili. 3. Questo è necessario dato che in molti manuali di html 5, viene solo specificato la differenza tra html 4 e html 5. Ciò premesso, terrò questo profilo perché spesso mi sono imbattuto in tag nuove senza le spiegazioni di quelle vecchie a cui andavano collegate. Inoltre, vi devo dire che in html 5 le specifiche inerenti ai form sono tantissime, quindi, dato il livello base del corso, vedremo solo quelle fondamentali, le più usate, lasciando ad un approfondimento futuro i dettagli e le specifiche particolari. Nota che: - I moduli lavorano insieme ad altri file per l'invio dei dati immessi. - Per questo lavoro di interazione si ha la possibilità di usare diversi tipi di file, creati con vari linguaggi di programmazione, tra cui anche il PHP. - Il buon funzionamento di questi file e, quindi, dei form, può dipendere anche dai servizi presenti sul server dove viene installato il sito. - Questo corso non si occupa di linguaggio PHP o di altri sistemi di invio dei dati, quindi, ci limitiamo solo ed esclusivamente alla creazione delle pagine web e della loro formattazione con i file Css. - Al termine del corso, sicuramente creerò dei form aggiungendoci anche dei file per farli funzionare, ma non posso dare nessuna garanzia, perché può accadere benissimo che lo stesso file di invio dati, se caricato su due server diversi, non è certo che sia funzionante allo stesso modo. Ora che abbiamo dato queste informazioni, possiamo iniziare. La tag che delimita un modulo è: `` simbolo di minore form simbolo di maggiore `` E si chiude inserendo una barra dopo il minore, così: `` simbolo di minore /form simbolo di maggiore `` Quando si effettua la creazione di questi Form, dobbiamo dare ad essi un nome, insomma, un identificativo. Ecco il codice: `` simbolo di minore form name="provaForm" simbolo di maggiore `` `` simbolo di minore p simbolo di maggiore campi del form simbolo di minore /p simbolo di maggiore `` `` simbolo di minore /form simbolo di maggiore `` Come precisato sopra, i dati raccolti dai form vengono inviati al server che li elabora. Quando i dati devono essere inviati, Abbiamo due attributi da assegnare, e li dobbiamo assegnare obbligatoriamente. Il primo è: action="paginaDati.php". Questo attributo indica la pagina o il file di riferimento con il quale vengono mandati i dati al server. Il secondo è: method="get". Oppure è: method="post". Entrambi indicano il metodo con il quale possono essere inviati questi dati al server. Il metodo get viene utilizzato per dati ridotti. Con questo metodo, alcuni server non accettano più di 255 caratteri. Il metodo post, invece, accetta molti più dati. Non analizzeremo qui la differenza, quindi, utilizzate come consigliato il metodo più adatto a seconda del vostro form, anche se il post è preferibile. Comunque, potrebbe essere necessario anche fare delle configurazioni particolari sul server per far funzionare uno di questi due metodi. Quindi, per continuare a completare il codice, avremo: `` simbolo di minore form name="provaForm" action="paginaDati.php" method="GET" simbolo di maggiore `` oppure: `` simbolo di minore form name="provaForm" action="paginaDati.php" method="POST" simbolo di maggiore `` Quindi, il codice visto in precedenza diventa: `` simbolo di minore form name="provaForm" action="paginaDati.php" method="POST" simbolo di maggiore `` `` simbolo di minore p simbolo di maggiore campi del form simbolo di minore /p simbolo di maggiore `` `` simbolo di minore /form simbolo di maggiore `` Ovviamente, anche se precedentemente non è stato indicato, il paragrafo inserito all'interno della tag form è solo per indicare il contenuto, poi successivamente inseriremo i veri campi con le relative tag. Procediamo, quindi, dando una spiegazione semplificativa nell'introdurre i primi campi. Dicevamo che nei form noi dobbiamo inserire dati, quindi, un input sia sotto forma di caratteri, sia sotto forma di scelte. Procediamo gradualmente dando importanza prima alla comprensione di questi campi, introducendo il campo utilizzato per inserire del testo. Per prima vediamo una text area formata da una sola riga di testo: `` simbolo di minore input type="text" simbolo di maggiore `` Questa è una tag che non ha chiusura e, tra le virgolette, notiamo il valore dell'attributo type. Scriviamo un esempio semplice di questa tag, simulando un campo di ricerca: `` simbolo di minore h2 simbolo di maggiore cerca nel sito simbolo di minore /h2 simbolo di maggiore `` `` simbolo di minore form name="ricerca" simbolo di maggiore `` `` simbolo di minore label simbolo di maggiore cosa cerchi?`` `` simbolo di minore input type="text" simbolo di maggiore `` `` simbolo di minore /label simbolo di maggiore `` `` simbolo di minore input type="submit" value="cerca" simbolo di maggiore `` `` simbolo di minore /form simbolo di maggiore `` Notate questa tag: `` simbolo di minore label simbolo di maggiore `` Questa è l'etichetta che compare a fianco del campo ed è quella etichetta che viene letta dallo screen-reader quando ci posizioniamo sul campo. Vi sarà capitato un form dove veniva richiesta, per esempio, una data. La label, nel caso delle date, sono le etichette che indicano il giorno, il mese e l'anno, quando il cursore si posiziona sui vari campi. Attenzione a non confondere la label con il nome del campo o con il suo contenuto. La label è solo l'etichetta del campo. Racchiude fisicamente il campo stesso, infatti si apre prima del campo e si chiude dopo che il campo viene completato. Un altro campo input che troviamo nel nostro esempio è: `` simbolo di minore input type="submit" simbolo di maggiore `` Questo indica un pulsante, un bottone, e questo tipo di comando indica "invia" e diciamo che conferma o spedisce i dati inseriti nell'area di testo. L'attributo "value", specifica il testo visualizzato nel pulsante stesso. Il testo che viene associato al pulsante è quello racchiuso tra virgolette, quindi, per l'esempio fatto, il testo è cerca. Attenzione: Value indica valore e in questo caso il valore del pulsante non cambia. In alcuni contesti questo attributo può essere sostituito da altri attributi. Desidero farvi notare che utilizziamo una tag nominata "input", quindi, già la tag significa inserire qualcosa. Inoltre, utilizziamo l'attributo "type" che indica esattamente che tipo di dati inseriamo nel campo del form rappresentato da quella tag. In pratica, è questa la logica dei campi di un form. Facciamo un altro esempio semplice sull'utilizzo di un pulsante: `` simbolo di minore h2 simbolo di maggiore Nunziante Esposito simbolo di minore /h2 simbolo di maggiore `` `` simbolo di minore p simbolo di maggiore Tecnico che pubblica queste lezioni sul giornale Uiciechi.it, grazie al contributo dell'Unione Italiana dei Ciechi e degli Ipovedenti simbolo di minore /p simbolo di maggiore simbolo di minore br / simbolo di maggiore `` `` simbolo di minore form action="www.uiciechi.it" target="_blank" simbolo di maggiore `` `` simbolo di minore input type="submit" value="visita Uiciechi.it" simbolo di maggiore `` `` simbolo di minore /form simbolo di maggiore `` Copiate queste stringhe in un file html e provatelo. Niente di strano, perché abbiamo solo inserito un pulsante che ci consente di aprire una nuova pagina web direttamente al sito dell'unione. Sicuramente avrete notato l'attributo: ``target="_blank"`` indica al programma di navigazione di aprire un'altra pagina nel browser, quindi di non chiudere quella dove siamo ma aprirne direttamente una nuova, navigando per schede. Di seguito, inseriamo un altro form semplice, sempre un'area di testo su unica riga, aggiungendo qualche attributo. Ipotizziamo di dover inserire il nostro indirizzo, via e numero civico. Ecco il codice che copierete poi in una vostra pagina html: `` simbolo di minore form simbolo di maggiore `` `` simbolo di minore input name="mioIndirizzo" type="text" placeholder="via Rossi 3" size="40" maxlength="200" / simbolo di maggiore `` `` simbolo di minore /form simbolo di maggiore `` In pratica, ho dato il nome al form e ho inserito text come tipo di input. Inoltre, ho inserito l'attributo "placeholder". Questo mi consente di far visualizzare nel campo di testo, un'indicazione che permetta al navigatore di comprendere esattamente cosa inserire. Molto semplicemente, gli indico un esempio che scomparirà non appena il focus viene portato nell'area di editazione tramite il tasto Tab o dal click del mouse. Notate che l'attributo completo è: placeholder="via Rossi 3" e che, come tutti gli attributi, dopo il suo nome, si mette un uguale e tra le virgolette il valore dell'attributo. In questo form incontriamo altri due attributi: "size" e "maxlength". Vediamo a cosa servono: - "size": indica la larghezza della nostra area e viene espressa in caratteri. Io ho inserito 40 caratteri e ripeto che questa è la larghezza nella pagina della nostra area di testo. Scusate se lo specifico, ma a volte ci si confonde con il numero massimo dei caratteri che è possibile inserire in una area di testo. - "maxlength": questo è il secondo attributo, quello che indica il numero massimo di caratteri consentiti in questo campo di testo. Il limite che ho inserito è 200. Ecco l'attributo completo: ``maxlength="200"`` Riassumendo, per precisare e far capire meglio il concetto di utilizzo di questo tipo di campo di testo di un form, devo dire che questa area ha le dimensioni di una riga di 40 caratteri, ma è possibile inserirne in essa fino a 200 caratteri. Qualcuno può pensare: e come si fa? Semplice! Visto che queste misure sono fisse e non possono variare, quindi, se si continua ad inserire il testo, superati i 40 caratteri, quello già scritto viene spostato a sinistra e viene nascosto, come se il testo stesso scorresse verso il bordo sinistro dell'area di testo, nascondendosi sotto agli eventuali oggetti che si trovano a sinistra. Si specifica questo per le persone non vedenti che, tra l'altro, non si possono rendere nemmeno conto visivamente di questo slittamento del testo se ci si sposta a sinistra, come fa un vedente. Infatti, se si porta il cursore verso sinistra con i comandi di movimento, man mano che ci si sposta a sinistra, un vedente osserva che il testo ricompare e quello che prima era a schermo, scompare a destra del campo editazione. Per completare il form, sarebbe stato opportuno inserire una label e un pulsante di invio del nostro indirizzo. Lascio a voi questo compito. Da tener presente che, se qualche volta e soprattutto nella spiegazione di questi form, alcuni campi vengono ridotti, è solo per semplificare il codice e per far risaltare maggiormente gli attributi nuovi da spiegare. Infatti, fate mente locale e provate ad immaginare un form formato da 4 aree di testo e 3 pulsanti, magari a formare una pagina di codice assieme a label, attributi e altri elementi, e capirete meglio il perché di queste semplificazioni. Sicuramente più avanti vedremo anche dei form completi, ma per rendere le spiegazioni più chiare, meglio se procediamo pian piano, incrementando i contenuti gradualmente. Nota importante: nelle nuove specifiche del linguaggio html 5 esistono veri input per gli indirizzi, per le mail, per i numeri telefonici eccetera. L'esempio sopra riportato ha l'unico scopo di spiegare i campi di testo. In base a quanto sopra riportato, cominciate a fare delle prove ad inserire qualche form di quelli visti sopra, inserendoli nelle pagine del sito che man mano state programmando. Nella prossima lezione procederemo con altri campi da inserire nei form e altri attributi, inserendo direttamente le nuove specifiche di programmazione di questo nuovo linguaggio. Vi rimando alla prossima lezione per continuare questo discorso che diventa sempre più interessante per arricchire sempre di più le pagine del nostro sito. `***********` Per ulteriori spiegazioni, scrivere a: `Roberto Abutzu simbolo di minore roberto@evyweb.it simbolo di maggiore `_Torna all'indice