Esercizio. Redirect con una casella a discesa

Si vuole realizzare una pagina web che permetta di scegliere di richiamare una specifica pagina fra un certo numero di pagine disponibili, utilizzando una casella di scelta a discesa, come nella figura seguente:

redirect

In altri termini, quello che si richiede è di realizzare un redirect della pagina tramite la scelta effettuata dall’utente nella casella di scelta. Ciò può essere realizzato sia lato client, sia lato server.

Soluzione lato client

La soluzione lato client consiste nel realizzare il redirect direttamente con Javascript, tramite l’evento onchange sulla casella di scelta a discesa. Un redirect con Javascript, può essere realizzato tramite l’oggetto location. L’attributo href di quest’oggetto permette di ottenere (se utilizzato a destra di un’assegnazione) oppure di impostare (se utilizzato a sinistra di un’assegnazione) l’URL della pagina e, quindi, in quest’ultimo caso di realizzare un redirect della pagina. Lo stesso risultato può essere ottenuto richiamando il metodo assign() che carica una nuova pagina, della quale il metodo richiede come argomento l’URL sotto forma di stringa. Per approfondimenti su quest’oggetto si rimanda al seguente link.

Quanto richiesto può essere ottenuto con il codice seguente, in cui a scopo esemplificativo vengono utilizzate entrambe le soluzioni (sia con l’attributo, sia con il metodo dell’oggetto location):

 Soluzione lato server

Una soluzione lato server potrà sfrutterà sempre l’evento onchange sulla casella di scelta con Javascript, ma questa volta solo per inviare la richiesta di redirect al server PHP, che invece dovrà materialmente eseguire il redirect. (Volendo si potrebbe realizzare anche una soluzione che utilizza esclusivamente il linuaggio PHP, scegliendo di inviare il form con la richiesta in maniera più classica, tramite un bottone di submit).

In PHP un redirect può essere eseguito utilizzando la seguente funzione:

Pertanto quanto richiesto può essere ottenuto con il codice seguente: