Salve gente,
ti posso fare io un esempio semplice semplice con solo un livello di dipendenza
codice:
<HTML>
<HEAD>
<script language="javascript">
function elemento(valore,testo,padre){
this.valore=valore
this.testo=testo
this.padre=padre
}
var opzioni = new Array()
opzioni[opzioni.length]=new elemento('cat1','film',null)
opzioni[opzioni.length]=new elemento('cat2','telefilm',null)
opzioni[opzioni.length]=new elemento('film1','matrix','cat1')
opzioni[opzioni.length]=new elemento('film2','biancaneve','cat1')
opzioni[opzioni.length]=new elemento('film3','pulp fiction','cat1')
opzioni[opzioni.length]=new elemento('film4','pinocchio','cat1')
opzioni[opzioni.length]=new elemento('film5','trainspotting','cat1')
opzioni[opzioni.length]=new elemento('tfilm1','heppy days','cat2')
opzioni[opzioni.length]=new elemento('tfilm2','streghe','cat2')
opzioni[opzioni.length]=new elemento('tfilm3','8 sotto un tetto','cat2')
opzioni[opzioni.length]=new elemento('tfilm4','arnold','cat2')
function svuotaSelect(ss){
nn = ss.length
for(i=nn; i>=0; i--)
ss[i]=null;
}
function VisPrimaSelect(){
prima = document.forms[0].primaSelect.options
svuotaSelect(prima)
for(i=0;i<opzioni.length;i++)
if(!opzioni[i].padre)
prima[prima.length]=new Option(opzioni[i].testo,opzioni[i].valore)
}
function VisSecondaSelect(){
seconda = document.forms[0].secondaSelect.options
svuotaSelect(seconda)
pp = document.forms[0].primaSelect
valorePrima = pp.options[pp.selectedIndex].value
for(i=0;i<opzioni.length;i++)
if(opzioni[i].padre==valorePrima)
seconda[seconda.length]=new Option(opzioni[i].testo,opzioni[i].valore)
}
</script>
<TITLE>Select dipendenti</TITLE>
</HEAD>
<BODY onload="VisPrimaSelect();VisSecondaSelect()">
<form>
<select name="primaSelect" onchange="VisSecondaSelect();">
</select>
<select name="secondaSelect" multiple size="5">
</select>
</form>
</BODY>
</HTML>
dovrebbe essere abbastanza chiaro il codice... se hai bisogno di chiarimenti chiedi pure
Aloha