Creazione una Select Dinamica con Javascript
Scritto da: Daniele Tabacco | Categoria: Script Javascript|commenti Commenti: (0)

In questo mio nuovo post, è dedicato a quello che personalmente ritego dopo MySQL il patner ideale per un Programmatore PHP, Javascript a differenza di PHP è un linguaggio lato client, cioè interpretato dal browser ad ogni nuova richiesta client (utente o pagina), è può risultare utile per molteplici funzioni di controllo o gestione di una pagina, fino ad arrivare alle interazioni complesse.

In questo esempio mostrerò come realizzare uno Script Javascript per una select combinata, cioè che seleziona il valore del secondo campo in funzione di quello scelto nel primo (Guarda l'esempio), lo farò in maniera semplice senza scomodare AJAX e/o PHP che non escludo di mostrare in un esempio successivo. 

Forum di con i due campi legati, da notare che a ogni cambiamento di valore nella prima select campo_principale corrisponderà una chiamata alla funzione javascript aggiornaOpzioni() che esamineremo di seguito:

...
<form name="form">
Seleziona Pizza:
<select name="campo_principale" size="1" onChange="aggiornaOpzioni();">
<option value="1">Pizza Margherita</option>
<option value="2">Pizza Marinara</option>
<option value="3">Pizza Capricciosa</option>
</select>
<br />
<br />
Seleziona Ingrediente:
<select name="campo_der" size="1">
</select>
</form>
...

Nell'esempio da buon Programmatore PHP di Napoli, ho usato 3 diverse tipologie di pizze e selezionando una delle 3 pizze nel secondo esempio vedremo una selezione di ingredienti che la compone.

Queste sono le due funzioni Javascript da comprendere prima della chiusura del tag </head>:

<script language="javascript">
/*Questa funzione legga il valore passato come parametro
e dato il valore aggiunge delle opzioni al secondo campo*/
function selezionaOpzioni(scelta) {
/*Resetto le opzioni precedenti del campo*/
var campo_der = document.form.campo_der;
campo_der.options.length = 0;
/*verifico la scelta e aggiungo i campi*/
if (scelta == "1") {
campo_der.options[campo_der.options.length] = new Option('Pomodoro');
campo_der.options[campo_der.options.length] = new Option('Mozzarella');
campo_der.options[campo_der.options.length] = new Option('Basilico');
}
if (scelta == "2") {
campo_der.options[campo_der.options.length] = new Option('Pomodoro');
campo_der.options[campo_der.options.length] = new Option('Aglio');
campo_der.options[campo_der.options.length] = new Option('Origano');
}
if (scelta == "3") {
campo_der.options[campo_der.options.length] = new Option('Pomodoro');
campo_der.options[campo_der.options.length] = new Option('Funghi');
campo_der.options[campo_der.options.length] = new Option('Olive');
campo_der.options[campo_der.options.length] = new Option('Carciofini');
}
}


Questa funzione prende il valore del campo_principale e fa una chiamata alla funzione selezionaOpzioni passando il parametro selezionato:

function aggiornaOpzioni(scelta){
var selezionato = document.form.campo_principale.selectedIndex;
var campo = document.form.campo_principale.options;
selezionaOpzioni(campo[selezionato].value);
}
</script>
...

è ovvio che quest'esempio può essere ampliato e mdificato da un Programmatore PHP con un pò di esperienza, affinche le opzioni ad esempio possano derivare da una query a database e rendere lo script del tutto dinamico.

Commenti:
.Nessun commento Presente.


(non visibile)







Captcha
Copia i caratteri che vedi sopra:

Tags: | torna su


linkedIn


Contattami su Skype:
Il mio stato

Archivio Articoli:

Cerchi un Programmatore PHP con esperienza consolidata, già molte aziende a Napoli, Milano, Roma e Ferrara si sono affidate a me. Contattami per una Consulenza Gratuita, per Realizzare Applicazioni Web o Sviluppare Siti Internet e Creare Portali Dinamici.

Risorse utili per PHP:


Partners & Consigliati:

NGMWeb Hosting & Servizi

MioMotore Directory Gratis

ADServer Gestione Banner

MiniSito Ottimizzato NGMWeb.net



Collaborazioni:


antoniomaresca


ngmweb


cocreando
 
Daniele Tabacco - Questo sito e' interamente realizzato da me secondo gli standard del W3C - css valido w3c css valido xhtml