Newsgroup: it.comp.lang.javascript
Titolo: select dinamica

Salve, sto cercando di far funzionare una select dinamica che modifica 
una seconda select in base a ciï¿œ che viene selezionato nella prima select.
Quello che non riesco a far funzionare, premettendo che ci capisco 
pochissimo di javascript, ï¿œ cercare di far popolare la seconda select 
alla pressione di un pulsante.
Qualcuno mi puï¿œ dare lumi?
Qui trovate l'esempio:
http://www.igroup.it/test/select/
grazie
Saluti
Max

 
http://www.igroup.it/test/select/
A me sembra funzionare tutto, se fai il change "automatico" basta 
chiamare la stessa function onclick. Cosa non riesci a fare?

 chiamare la stessa function onclick. Cosa non riesci a fare?
Quando clicchi sul pulsante US dovrebbe comparire nella seconda select 
l'elenco delle citta "US" ed invece non succede nulla.
Le due select tra di loro funzionano, non riesco a governare la seconda 
select con delle invocazioni "esterne"
Max

 invocazioni "esterne"
Ho capito.
Così al volo (non ho testato): onchange richiami:
 function getCityList(sel)
dove il parametro è la select, e non va bene.
Varie opzioni; la prima che mi viene in mente:
function getCityList(sel,value)
se passo sel uso la select, altrimenti uso direttamente il value.
Quindi onclick del tasto farai "getCityList(null,"US")"
E la getCityList(sel):
var countryCode = sel.options[sel.selectedIndex].value;
diventa
var countryCode = (sel==null?value:sel.value);
Dovrebbe bastare
p.s. ovviamente *NON* aggiunge "US" alla prima select ... altrimenti il 
tutto si complica un minimo, per evitare di aggiungere N "US" con N click.

 tutto si complica un minimo, per evitare di aggiungere N "US" con N click.
Ho capito poco di quello che mi hai spiegato perchï¿œ non capisco nulla di 
javascript, comunque in sostanza a me servirebbe effettivamente che al 
caricamento della pagina la seconda select si posizionasse con i valori 
di "us"
Quindi penso che sia necessario mettere un qualcosa in body tipo un 
onLoad qualcosa, e il "qualcosa che non riesco a scovare.
Ho provato con <body onload="getCityList('us')">
ma non sembra funzionare
Grazie
Massimo

 onLoad qualcosa, e il "qualcosa che non riesco a scovare.
Se è onclick non devi mettere nulla onload di body, ma onclick del tasto 
(come ti ho scritto)

 (come ti ho scritto)
Sono partito con il piede sbagliato nella spiegazione del mio problema. 
In effetti il mio problema ï¿œ quello esposto per ultimo. Cioï¿œ la prima 
select riesco a gestirla perchï¿œ ï¿œ giï¿œ popolata, la seconda che si popola 
solo se seleziono qualcosa nella prima select a me servirebbe che al 
caricamento della pagina la seconda inizi giï¿œ con dei valori visibili e 
cioï¿œ quelli di "us".
All'inizio avevo fatto una richiesta diversa perchï¿œ pensavo che con 
quell'esempio potessi risolvere il vero problema.
Chiedo scusa.
Max

 quell'esempio potessi risolvere il vero problema. Chiedo scusa.
Allora non capisco: visto che "al caricamento della pagina la seconda 
inizi già con dei valori visibili e cioè quelli di "us"", perché mai devi 
"scomodare" javascript? Non puoi metterli direttamente nell'html inviato 
al client, visto che quando compare la pagina devono esserci già?

 quell'esempio potessi risolvere il vero problema. Chiedo scusa.
Ferme le mie perplessità espresse nell'altra risposta, non vedo 
differenze: quello che ti ho detto di fare lo scatenerai window.onload 
anziché onclick del tasto ...
https://developer.mozilla.org/en/DOM/window.onload

 Quindi onclick del tasto farai "getCityList(null,"US")"
ops
"getCityList(null,'US')"

 al client, visto che quando compare la pagina devono esserci giï¿œ?
Il tutto mi serve quando richiamo una pagina con un form con dei dati 
giï¿œ caricati, i dati vengono da un DB. Potrei popolare la seconda select 
con l'HTML (o meglio da uno script php che mi prende i dati dal db, come 
nel mio vero caso) ma non devo perdere la possibilitï¿œ che l'utente possa 
decidere di cambiare il valore della prima select e quindi in cascata 
dovrebbero cambiare anche i valori della seconda.
Tutto qui
Max


Se vai a vedere l'esempio caricato ho messo
<body onload="getCityList('us')">
ma non succede nulla anzi con explorer mi da anche un errore di javascript
Max

 javascript
immagino anche in firefox, devi guardare la console javascript per gli 
errori


Appunto era una prova. quello che mi hai scritto non sono riuscito ad 
applicarlo.
Come devo fare per popolare la seconda select al caricamento della 
pagina con i dati ad esempio di US ?
Questa ï¿œ la mia richiesta effettiva/finale.
Se riesco a fare questo ho risolto.
Max

 risolto.
Copioincollo:
Così al volo (non ho testato): onchange richiami:
 function getCityList(sel)
dove il parametro è la select, e non va bene. Varie opzioni; la prima che
mi viene in mente:
function getCityList(sel,value)
se passo sel uso la select, altrimenti uso direttamente il value.
Quindi *window.onload* farai "getCityList(null,'US')"


 p.s. ovviamente *NON* aggiunge "US" alla prima select
Perfetto!!!
Adesso funziona
Ho pubblicato le modifiche
Grazie
Max