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à:

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.