mo mi dovrei spiegare meglio!
ovviamente tu all'inizio dovrai fare le tue select e costruire l'array nel modo giusto e passarlo lato client a questo script...e dovresti anche migliorare i controlli l'ho fatto al volo...anche se c'ho messo un po di tempo!
codice:
<script>
arr = new Array("fiat","jaguar")
arr["fiat"] = new Array("cinquecento","seicento")
arr["fiat"]["cinquecento"] = new Array("blu","rosso")
arr["fiat"]["seicento"] = new Array("grigio","verde","rosso")
arr["jaguar"] = new Array("r-type","x-type")
arr["jaguar"]["r-type"] = new Array("blu","azzurro")
arr["jaguar"]["x-type"] = new Array("grigio","blu")
function funzione()
{
marca = "" + document.forms[0].marca.value
sel = document.getElementById("tipo");
for (i=sel.options.length-1;i>-1;i--)
sel.options.remove(i)
for (i=0;i<arr[marca].length;i++)
{
valore = arr[marca][i]
var oOption = document.createElement("option");
oOption.text =valore;
oOption.value = valore;
sel.add(oOption)
}
sel2 = document.getElementById("colore");
for (i=sel.options.length-1;i>-1;i--)
sel2.options.remove(i)
for (i=0;i<arr[marca][tipo].length;i++)
{
valore = arr[marca][tipo][i]
var oOption = document.createElement("option");
oOption.text = valore;
oOption.value = valore;
sel2.add(oOption)
}
}
function funzione2()
{
sel = document.getElementById("colore");
for (i=sel.options.length-1;i>-1;i--)
sel2.options.remove(i)
marca="" + document.forms[0].marca.value
tipo = "" + document.forms[0].tipo.value
for (i=0;i<arr[marca][tipo].length;i++)
{
valore = arr[marca][tipo][i]
var oOption = document.createElement("option");
oOption.text = valore;
oOption.value = valore;
sel.add(oOption)
}
}
</script>
<form>
<select name="marca" onchange="funzione()">
<option value="fiat">fiat</option>
<option value="jaguar">jaguar</option>
</select>
<select id="tipo" name="tipo" onchange="funzione2()">
</select>
<select id="colore" name="colore" onchange="">
</select>
</form>