Laboratorio di Sistemi Informativi
Soluzioni Esercizi - Interrogazioni con
PHP
Esercizio 1
Modificare form-totale2.php in
modo tale che gli aeroporti di partenza
visualizzati siano solo quelli da cui effettivamente parte almeno un
volo, mentre gli aeroporti di arrivo siano solo quelli nei quali arriva
almeno un volo.
Soluzione
La soluzione di questo esercizio si trova in form-totale3.php. L'unica differenza
è un piccolo cambiamento alla query utilizzata per farsi
restituire da MySQL l'elenco degli aeroporti disponibili.
Esercizio 2
Modificare form-totale2.php in modo tale che, una volta scelto
l'aeroporto di partenza, vengano visualizzati solo gli aeroporti di
destinazione verso i quali esiste un volo (con partenza dall'aeroporto
selezionato). Ci sono due possiblità:
- fare due form diverse, la prima in cui si sceglie solo
l'aeroporto di partenza, e la seconda in cui si sceglie l'aeroporto di
destinazione. Una volta scelto anche quest'ultimo, si passa alla
visualizzazione dei risultati;
- fare una form unica, ma utilizzare JavaScript per forzare il
ricaricamento della pagina quando si modifica l'aeroporto di partenza.
Soluzioni
Una soluzione del primo tipo è fornita dallo script form-totale4.php. Lo script è
diviso in tre parti. Quando lo script viene chiamato, senza specificare
alcun parametro in input, viene eseguita l'ultima parte, che richiede
l'immissione dell'aeroporto di partenza. Se si clicca sul pulsante
"Avanti" lo script viene rieseguito, ma stavolta il controllo passa
alla parte intermedia che visualizza l'aeroporto precedentemente
immesso per la partenza e chiede di inseire l'aeroporto di arrivo.
Infine, cliccando si "Cerca" viene ancora rieseguito lo script ma
stavolta il controllo passa alla parte iniziale che visualizza i
risultati della ricerca.
Notare l'utilizzo del tag <input
type=hidden... > che viene utilizzato, nella parte
intermedia, per passare il valore del parametro src allo script form-totale4.php, in seguito al
click sul pulsante "Cerca". Senza questo campo di input, soltanto il
valore dell'aeroporto destinazione, quello immesso nella form, verrebbe
passato allo script, e quindi si perderebbe l'informazione su quale era
l'aeroporto di partenza immesso dall'utente nella fase iniziale.
Il campo <input type=hidden
name=<n> value=<v>> non viene
visualizzato, ma causa il passaggio del parametro n con valore v allo script sucessivo.
--
Una soluzione che usa JavaScript è presente in form-totale-js.php. L'utilizzo di
Javascript consente di chiedere aeroporto di partenza e destinazione in
una unica form. Quando l'aeroporto di partenza o l'aeroporto di
destinazione viene modificato, il Javascript si occupa di ricaricare
automaticamente la pagina per aggiornarla.