Controllo dell'input con Javascript
L'appplicazione appena descritta, consente dunque all'utente che accede al formulario, di compilare i campi a sua disposizione: caselle di testo o menu a tendina, e inviare mediante il pulsante sumbit i dati così introdotti al programma su server, incaricato del salvataggio nel file dati.
Nulla però ci assicura che le caselle di testo che riteniamo importanti, come ad esempio il Nome e Cognome, vengano effettivamente compilati dall'utente.
Nel caso le lasciasse vuote, il programma riceverebbe semplicmente una stringa nulla, e in assenza di ulteriori controlli, questi dati sarebbero utilizzati per la scrittura su file. Ci ritroveremmo così nel file possibili righe poco significative, mancando i dati che riteniamo essenziali.
Potremmo modificare il programma php di salvataggio in modo da segnalare all'utente, la mancanza di dati per noi essenziali, invitandolo a ricompilare la scheda correttamente e reinviare il tutto.
Questa operazione comporta però trasmissioni di dati e impegno del programma ricevente, magari da parte di più utenti contemporaneamente. Sarebbe più efficiente quindi effettuare questo controllo a monte, ossia direttamente del file con la FORM, e non inviare alcun dato al server fino a che la scheda non risulti compilata correttamente.
Utilizzeremo quindi questo approccio, inserendo nel file HTML uno script (ossia un programma incorporato) adibito a questo scopo. Il linguaggio ormai diventato uno standard di fatto per la programamzione su web lato client è il Javascript.
Programma 'lato client' significa che il codice incorporato nell'HTML a differenza dell'esempio php visto in questa lezione, non verrà eseguito sul server che ospita la pagina, ma trasmesso così come è scritto insieme al codice HTML al browser. Sarà quest'ultimo che esseguirà il codice al momento opportuno, direttamente sul computer dell'utente, senza quindi impegnare la rete.
Ormai tutti i browser moderni sono in grado di eseguire codice javascript incorporato nell'HTML per eseguire svariate operazioni, di calcolo o di modifica di quanto mostrato su schermo.
L'unico limite invalicabile, è che i programmi javascript non possono alterare in modo permanente nessun dato sul disco del computer locale o remoto.
I cambiamenti possono operare solo su quanto mostrato a schermo, se si ricarica la pagina, tutto ritornerà come prima. Il codice HTMl sorgente della pagina e qualunque dato su disco sono immodificabili da javascript.
Permetterlo sarebbe una grave compromissione della sicurezza dei dati sul web.
Rivediamo il codice della Form e vediamo come poterlo modificare
<FORM METHOD=POST ACTION=mapelli.selfip.org/web/lezioni-php/cena.php>
Nome: <input type=text name=nome> Cognome: <input type=text name=cognome>
Email: <input type=text name=email>
giorno preferito: <select name=giorno>
<option>lunedi
<option>martedi
<option>mercoledi
<option>giovedi
<option>venerdi
<option>sabato
r <option>domenica
</select><p>
<center> <input type=submit value="Invia"> <input type=reset value="Cancella"></center>
</FORM>
Modifichiamo questo codice, sostituendo il pulsante submit che causa l'invio immediato al programma di ricezione, con qualcosa che intercetti questa operazione, allo scopo di effettuare il controllo dell'input.