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:
E questa è la funzione aggiornascelte() :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>
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...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>
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?

Rispondi quotando