Tecnologie Web – Moduli HTML e Javascript

Introduzione
In questo articolo, affronto il problema della creazione dei moduli in HTML e l’interazione con javascript.
Questo approccio, ti permette di avvicinarti, in modo graduale a Javascript, anche se oggi sono utilizzati “Framework” quali “Jquery”, “BootStrap”, “AngularJS”, ed altri un minimo di infarinatura in Javascript, non guasta.
In questo primo articolo, io mi soffermo sulla creazione dei “Form HTML”.

I form html

Un “form” o modulo HTML è un insieme di elementi, che consento all’utente di inserire dei dati in una pagina web, e di inviare i dati per una successiva e immediata elaborazione.
Molti siti web personalizzano, i loro contenuti in base alle scelte operate dai loro utente visitatori, per le più svariate applicazioni.
Ad esempio quando un utente, utilizza un servizio di “E-commerce”, “e-banking”, “webmail”, “social netowk”, inserisce dei dati che sono inviati ad un’applicazione remota che elabora i dati ricevuti e trasmette all’utente mediante il browser un output in formato “html”.
L’interazione di moduli HTML con le applicazioni che ricevono i dati possono essere di due tipi:
applicazione “Client” e “Applicazione Server”.
In seguito, le applicazioni possono essere combinate per ottenere varianti al modello utilizzato fino a qualche anno fa; infatti occorre combinare le applicazioni in quattro modalità differenti:

  • 1- Client statico – server statico;
  • 2- Client dinamico – server statico
  • 3- Client statico – server dinamico
  • 4- Client dinamico – server dinamico

Il primo caso è molto semplice, il client invia una richiesta inviando un URL, e il server risponde inviando la risorsa indicata nell’URL se esiste, altrimenti invia un messaggio di errore tipicamente un errore di tipo 404 (codice utilizzato dai web server per indicare l’assenza del documento richiesto)
Il secondo caso il client può elaborare le informazioni mediante un linguaggio di scripting lato “client” come “javascript” o altro, oppure scaricare un programma applet dal server che invia un programma compilato che viene eseguito nel browser. Ad esempio un client richiede una pagina web che prevede lo scaricamento dal server di un programma compilato che si occupa dell’elaborazione.
Nel terzo caso il client invia una richiesta statica con dei dati all’interno della richiesta. Un applicazione “server ” elabora la richiesta e restituisce un risultato grazie all’esecuzione sul serve remoto di un programma scritto in “PHP”, “C#”, “Java”, “Python”.
L’ultima tipologia di situazione unisce sia un’elaborazione sul client per esempio per la validazione dei dati (verificare se un utente inserisce un indirizzo email corretto, etc.), e fa uso di un’applicazione server che in modo parametrico come nel terzo caso elabora i dati ricevuti mediante un programma e restituisce un output in formato HTML.
Tutto questo, con l’uso del protocollo” TCP” “HTTP” o “HTTPS”.
Fatta questa premessa, un “Form” o Modulo è un insieme di componenti di Input e Output di un’interfaccia che possiamo definire “FrontEnd” scritta in HTML.
Il tag utilizzato è <FORM name=”nome form” id=”nome form” method=”GET o POST” action=”nome file da eseguire/ funzione” [OnSubmit=”nome funzione/o file”] [target=”tipo finestra”] > e la relativa chiusura è </FORM>.
Gli attributi “name” e “id” indicano il nome dell’oggetto nel modello DOM “Document Object Model” o nel relativo programma server. L’attributo “action” indica il programma server da eseguire oppure la funzione lato “client” da richiamare nel caso di script “Javascript”. Nell’attributo “action” è possibile inserire sia percorsi relativi che assoluti rispetto alla cartella radice del sito. L’attributo “method” è utilizzato quando è necessario inviare i dati ad un’applicazione “server”. il metodo “GET” invia i dati inserendoli nell’URL e sono visibili, a meno di non crittografarli, nel metodo “POST” sono inviati in “background” su un canale http/https separato. Quest’ultima modalità è consigliata quando è necessario inviare molti dati, o ad esempio eseguire upload di file.
L’attributo “target” che può essere “_blank”. “_parent”, “_self” indica in quale finestra del Browser si deve aprire la risposta all’invio dei dati. Nel caso dell’attributo con valore “_blank” si intende una nuova finestra, “_self” nella stessa finestra, “_parent” nel “frame” principale o nella stesa finestra in caso di assenza di “Frame”.
L’attributo “OnSubmit” indica un evento specifico che accade all’invio del “form” ovvero il “Submit” o “invio”, In questo caso è possibile richiamare uno script o un programma “server” che viene eseguito all’invio.
Esistono diversi eventi, che possono accadere nella pagina HTML.
Il tag principale per costruire le componenti è il tag “<INPUT>” che non prevede chiusura. la sintassi completa del tag “<INPU> è:

<input type=”tipo controllo” name=”nome controllo” id=”nome controllo” value=”valore di default” size=”dimensione del campo input”>
Il valore dell’attributo “type” può essere “text”, “textarea”, “radio”, “checkbo”, “listbox”, “image”, “button”, “submit”, “reset”, “file”.
Per ora, prendiamo in considerazione il tipo “text” casella di testo e il tipo “textarea” ovvero un’area di testo, e “submit” e “reset” che sono due pulsanti di comando da inserire sempre in html. L’attributo “value” indica il valore del campo predefinito non obbligatorio, l’attributo “size” indica il numero di caratteri di quel campo.
Per vedere l’effetto scriviamo un semplice codice HTML di esempio:

Costruiamo il primo form html

<!DOCTYPE HTML>
<html>
<head<
<meta charset="utf8"></head>
<title>Primo form html</title>
<script type="text/javascript" >
function saluto()
{
	alert("Ciao "+nome.value+" "+messaggio.value);
	return true;
}
</script>
</head>
<body>
<form neme="saluta" id="saluta" OnSubmit="return saluto()" action="" method="">
<table border=="2">
<tr><td>Nome Persona:</td><td><input type="text" id="nome" name="nome" value="digita il tuo nome" size="30">
</td></tr>
<tr><td>Messaggio: </td><td><input type="textarea" id="messaggio" name="messaggio" value="il tuo messaggio">
</td></tr>
<tr><td><input type="submit" name="conferma" id="onferma" value="Invia"></td>
<td><input type="reset" name="cancella" id="cancella" value="Elimina dati"></td>
</tr>
</table>
</form>
</body>
</html>



Test del nostro primo form

Primo form html
Nome Persona:
Messaggio:

Come vedi ti sto facendo vedere il risultato. Ho creato una tabella, di tre righe e due colonne e ho inserito i controlli, secondo il metodo che ti ho descritto. Puoi pure provare il risultato.


Il nostro primo script javascript che abbiamo scritto è:

<script type="text/javascript" >
function saluto()
{
	alert("Ciao "+nome.value+" "+messaggio.value);
	return true;
}

E’ uno script semplice, creo una funzione di nome “saluto” che cattura il nome di una persona e il messaggio dai due controlli inseriti nel “form html”. In particolare sfrutto il modello “DOM” che è disponibile nel linguaggio Javascript ovvero richiamare i valori dei campi del form mediante il loro nome e il loro valore. Questi poi sono concatenati mediante l’operatore “+” che in Javascript alla stregua del linguaggio C++ concatena le due stringhe insieme al messaggio “ciao”.
L’ultimo dettaglio importante è come viene richiamato lo script nella pagina web. Nella pagina web è stato inserito l’attributo “OnSubmit” nel tag “<FORM>” il quale richiama lo scripi con l’istruzione “return saluto();”. In questo caso se il valore di ritorno è “true” dalla funzione vuol dire che lo script è stato eseguito correttamente, altrimenti si è interrotto per un qualche errore. Ho utilizzato questo metodo per poi poter controllare meglio l’esecuzione dello script. La funzione poteva anche non prevedere il “return true” e in questo modo se nella pagina che richiama lo script non ricevo nessun valore di ritorno e quindi non stampa il messaggio nella finestra sovrapposta alla pagina web, non sono in grado di comprendere subito eventuali errori.
Se vuoi vedere il Video di come ti spiego tutto per l’articolo clicca sul link per l’abbonamento a tanti altri contenuti.
Video Lezione n.4 – HTML e Form – Interazione Javascript