ciao,
ho due form select in cui con il php mi estraggo in un ciclo while i dati contenuti in due tabelle.
nella tabella continenti ho 2 campi:
id_continente / valore_continente
1 africa
2 Latin America
3 asia
4 europa
nella tabella nazione ho 3 campi:
id_nazione, id_continente, valore_nazione.
l'id_nazione è autoincrement , l'id_continente è il valore corrispondente al continente cui la nazione fa parte, valore_nazione è il nome della nazione.
quello che vorrei fare è quando seleziono i continenti mi escano nella seconda combo le nazioni correlate.
ho questo script:
solo che non riesco a far uscire le nazioni nella combo...codice:<html> <head> </head> <body> <script language="Javascript"> var IdxsC = new Array(); var OptsN = new Array(); var oOpt; <?php include("../pannello/dbconnect.php"); $queryC = "SELECT * FROM continente"; $resultC = mysql_query($queryC) or die(mysql_error()); for ($idxC=0; $datiC = mysql_fetch_array($resultC); $idxC++) { ?> { IdxsC[<?=$idxC?>] = <?=$datiC["id_continente"]?>; OptsN[<?=$idxC?>] = new Array(); <?php $queryN = "SELECT * FROM nazione WHERE id_continente = ".$datiC["id_continente"]; $resultN = mysql_query($queryN) or die(mysql_error()); for ($idxN=0; $datiN = mysql_fetch_array($resultN); $idxN++) { ?> { oOpt = document.createElement("option"); oOpt.value =<?=$datiN["id_nazione"]?>; oOpt.text = <?=$datiN["valore_nazione"]?>; OptsN[$idxC][$idxN] = oOpt; } <?php } ?> } <?php } ?> function GetOptions(idxC) { for(var idx=0; idx<IdxsC.length; idx++) { if(IdxsC[idx] == idxC) { return OptsN[idx]; } } return new Array(); } function nazione(selezionata) { var Opts = GetOptions(selezionata); document.form1.seconda.options.length = 0; var oOpt = document.createElement("option"); oOpt.value = ""; oOpt.text = ""; document.form1.seconda.options[0] = oOpt; for(i=0; i<Opts.length; i++) { document.form1.seconda.options[i+1] = Opts[i]; } } </script> <form name="form1"> <select name="prima" onChange="nazione(this[this.selectedIndex].value)"> <?php echo "<option value=\"\"></option>"; $query = "SELECT * FROM continente"; $result = mysql_query($query) or die(mysql_error()); while ($dati = mysql_fetch_array ($result)) { echo "<option value=\"".$dati['id_continente']."\">".$dati['valore_continente']."</option>\n"; } ?> </select> <select name="seconda"> </select> </form> </body> </html>![]()
dov'è che sbaglio?
grazie.