Salve a tutti,
ho necessità di creare una doppia SELECT in maniera tale che la prima vada a determinare come riempire la seconda.

Esempio: la prima SELECT è composta da X opzioni. A seconda dell'opzione che si sceglie nella prima SELECT nella seconda SELECT vengono mostrate Y opzioni.

La base è una cosa del genere:
codice:
<h2>Test</h2>
<form name="test">
<select name="scelta1" onChange="aggiornascelte(this.selectedIndex)">
<option selected>Scegli</option>
<option value="prima">Prima</option>
<option value="seconda">Seconda</option>
<option value="terza">Terza</option>
</select>

<select name="scelta2">
</select>
</form>
E questa è la funzione aggiornascelte() :
codice:
 
<script language="javascript" type="text/javascript">

var elencoscelte1=document.classic.scelta1
var elencoscelte2=document.classic.scelta2
 
var scelta2=new Array()
scelta2[0]=""
scelta2[1]=["Uno|uno", "Due|due", "Tre|tre"]
scelta2[2]=["Bianco|bianco", "Giallo|giallo", "Rosso|rosso"]
scelta2[3]=["Alto|alto", "Basso|basso", "Grasso|grasso"]
 
function aggiornascelte(lamiascelta){
elencoscelte2.options.length=0
if (lamiascelta>0){
for (i=0; i<scelta2[lamiascelta].length; i++)
elencoscelte2.options[elencoscelte2.options.length]=new Option(scelta2[lamiascelta][i].split("|")[0], scelta2[lamiascelta][i].split("|")[1])
}
}
 
</script>
Il mio problema è il seguente: tanto i dati della prima select, quanto quelli della seconda, dovrebbero essere caricati da una tabella MySQL. Quindi i casi sono due: o ho perso tempo con il mio JS e potevo fare tutto in PHP, oppure (suppongo) devo precaricare tutti i dati entro variabili per poi girare i dati nello script JS...

A caricare i dati nella prima SELECT ci arrivo... faccio una query nel DB di quello che mi serve e dentro i tag <SELECT></SELECT> faccio un while dei risultati (<option value=$row[0]>$row[0]</option>).

Il problema è aggiornare i dati nella seconda select. La scelta della prima select deve agire sulla query come fosse un WHERE (SELECT * FROM table WHERE item=scelta1). Quindi suppongo che sia necessario fare preventivamente una query per ognuna delle opzioni della prima SELECT e tener conto del mysql_num_rows per sapere quante opzioni devo prevedere nella seconda SELECT...

Help?