Entra

View Full Version : [html/javascript] Aggiornare select dopo un'altra select


Fire Fox II
05-06-2013, 15:24
Salve raga

avrei bisogno di aggiornare una select (query che viene effettuata in un database) dopo aver effettuato un altra'select...

Del tipo, da un select contenente i nomi delle regioni, effettuata la scelta e in un'altra select mi compaiono le relative città...

Sono riuscito a risolvere chiamando un script che mi ricarica la pagina, ma io vorrei evitare questo se possibile...

Come potrei ovviare?

Thanks

wingman87
05-06-2013, 20:53
In questi casi in genere scelgo tra usare ajax, se i dati sono tanti, o precaricare tutto (ad esempio in una select nascosta con vari optgroup, uno per ogni possibile selezione della prima select) e popolare la seconda select al change della prima.
Se scegli la strada di ajax devi creare una pagina che si aspetti come parametro il valore della prima select e restituisca gli option della seconda. Con uno script effettui una chiamata a questa pagina al change della prima select e metti la risposta nella seconda select. Usando jquery la parte lato client è semplicissima. Ad esempio, se la prima select ha id regione e la seconda provincia:
$("#regione").change(function(){
$("#provincia").load("getProvince.php", { regione: $(this).val() });
});
$(this).val() in quel contesto è il valore selezionato nella select con id regione mentre load mette dentro al select provincia la risposta della chiamata a getProvince.php (passando il parametro regione)
http://api.jquery.com/load/

Volendo il codice si può migliorare ma questa è una base per farti capire...