-
Menù a cascata
Avevo una domanda...come si fa a creare un menù a cascata che si selezioni senza premere alcun tasto? detta così non è molto chiaro. Ora mi spiego facendo un esempio. Ho un menù a cascata con i nomi delle regioni ed un altro menù a cascata con tutte le città. Io vorrei fare in modo che scegliendo una regione in automatico nel menù a cascata delle città escano solo le città di quella regione. Come si può fare tutto questo?
-
di solito cose del genere si fanno con un programmino javascript..se cerchi sene trovano molti di esempi del genere già fatti..prova su html.it o prorpio sugli script nella homepage di altervista..
nel frattempo cerco perchè mi sembra che avevo fatto una cosa del genere, se la trovo la posto..
TROVATO: prova con questo:
<form name="doublecombo">
<p>
<select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option value="tipo1">Tipo 1</option>
<option value="tipo2">Tipo 2</option>
<option value="tipo3">Tipo 3</option>
</select>
<select name="stage2" size="1">
<option value="x">Sottotipo 11</option>
</select>
<script>
<!--
var groups=document.forms[0].example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("Sottotipo 11","x")
group[1][0]=new Option("Sottotipo 21","a")
group[1][1]=new Option("Sottotipo 22","b")
group[2][0]=new Option("Sottotipo 31","r")
group[2][1]=new Option("Sottotipo 32","s")
group[2][2]=new Option("Sottotipo 33","t")
group[2][3]=new Option("Sottotipo 34","u")
var temp=document.doublecombo.stage2
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
</form>
-
ok, grazie mille. Il form funziona benissimo. Però non sono un espertissimo di javascript e quindi se potresti spiegarmi un pochettino alcuni passaggi?! Perchè dovrei modificarlo in modo da fare anche più menu a cascata, non soltanto due. Ad esempio non ho capito bene questa funzione cosa fa:
Codice:
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
Dove dovrei modificare se volessi usare più di un menu a cascata???
Grazie per la pazienza.