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:
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>
solo che non riesco a far uscire le nazioni nella combo...
dov'è che sbaglio?
grazie.