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?