[Manuale di riferimento del W3C, Learning web design]
Sommario
Web form
Frame, iframe
Novità di HTML5
Rich Media
Form
HTML da sempre mette a disposizione strumenti di interazione e per la raccolta di informazioni da parte dell’utente: i form web (in italiano moduli web)
Un form è un elemento HTML composto da:
elementi HTML per la raccolta delle informazioni, di vario tipo
un pulsante per l'invio dei dati all'applicazione (tipicamente sul server) che li elaborerà
I form e gli elementi al loro interno in questo corso ci interessano principalmente come strumenti di interazione sul lato client
Un esempio
Accesso da parte dell'utente ad un database che risiede sul server: la pagina web è una interfaccia per accedere ai dati che risiedono sul server
Esempio: la risposta
Come funzionano?
Il tag form definisce un elemento di tipo “blocco”
L'elemento form racchiude una serie di elementi HTML, detti controlli, usati dall’utente per inserire informazione: campi per input di testo, scelte multiple, menù a discesa, … ma non altre form
Ciascun controllo ha un nome e un valore:
Il nome è specificato nel codice HTML con l'attributo name
Il valore corrisponde all’input fornito dall’utente
Una volta inserita l’informazione le coppie nome-valore dei controlli del form vengono inviati all’applicazione sul server che li elaborerà
Invio dati
L’invio dei dati coinvolge due pagine
La pagina HTML che contiene il form per l’inserimento dei dati
La pagina (o il programma PHP/ASP/JSP…) che riceve i dati inviati dal form e che risiede normalmente sul server
I valori specificati dall’utente sono inviati all’URL specificato come un insieme di coppie nome=valore separate da ‘&’
Es. nome=Giovanna&soprannome=Jo
Il tag form
Sintassi per l’inserimento di un form:
<form id="modulo" method="get" action="script.php">
<!-- Qui si inseriscono i controlli -->
</form>
L’attributo id identifica il form
L’attributo action fornisce l’URL dello script o dell’applicazione che elaborerà i dati inseriti dall’utente. Ogni form può avere una sola action.
L’attributo method specifica il metodo di invio dei dati al server.
Il protocollo HTTP prevede due metodi: GET e POST
Metodo GET
Con il metodo GET i dati vengono passati nell'URL
http://script.php?nome=Giovanna&nickname=Jo
Il carattere ? separa il nome della pagina dai parametri che vengono passati nel form
quello che segue è la query string o stringa di interrogazione
I caratteri non consentiti negli URL vengono automaticamente resi con i loro caratteri esadecimali (URL Encoding, standard di codifica Internet Media Type)
Esiste infine un tipo di bottone generico che non esegue nessuna azione particolare ma che può essere utilizzato per associare degli eventi con JavaScript
<input type="button" value="Clicca!">
input type="image"
Il campo "image" ci consente di utilizzare come bottoni vere e proprie immagini
SRC mi permette di specificare l’url dell’immagine
Usare l’attributo ALT!
<input type="image" name="Invia" src="img/enter.jpg"
width="88px" height="40px"
alt="invia il modulo" />
Nel caso dei frame e degli iframe è il browser che richiede al server un documento via http e non c’è modo di sapere sul lato server se il documento verrà incluso nella pagina di un altro (framing).
Alcuni servizi, tipo YouTube o l'orario, ci consentono di includere contenuti in un iframe
Altri no, consentono solo visualizzazioni a tutto schermo (basta un po' di Javascript)
I browser, non consentono di accedere al contenuto incluso, per modificarlo o adattarlo alla pagina "ospite". Vale anche per Javascript.
Il framing è considerato scorretto e una violazione del copyright, quando fatto senza chiedere autorizzazioni.
Alternative all'uso dei frame
Lato server: Se c'è una componente che si deve ripetere nelle varie pagine di un sito (es. un menù di navigazione, un logo) si preferisce farla includere dal server.
Javascript lato client
Anche con Javascript si può includere contenuto nelle pagine
Con AJAX si possono fare richieste “asincrone” al server e caricare su richiesta pezzi di pagina o dati
Limitazione: questi contenuti devono provenire dallo stesso server che ospita la pagina che li richiede (Same Origin Policy), per motivi di sicurezza
Rich media: inclusione semplice di audio e video
Includere audio e video è sempre stato un incubo: richiede plugin (Flash o Silverlight) o l' uso di iframe