Ciao a tutti, ho un problema con delle sellect di un form che popolo dinamicamente da database copio il codice e poi spiego l'errore.
index.php:
include('include/class/select.class.php');
$obj = new select();
$l1 = $obj->getL1();
$l2 = $obj->getL2();
<head>
<script type="text/javascript">
.
.
.
</script></head>
<select name="l1" id="l1" onchange="loading()">
<option value="sel" selected="selected">Seleziona una Regione:</option>
<?
for($x=0;$x<count($l1);$x++){
?>
<option value="<?=$l1[$x]['idregione']?>"><?=$l1[$x]['nomeregione']?></option>
<?
}
?>
</select>
</div>
<div id="label2">
Select 2
</div>
<div id="select22">
<select name="l2" id="l2" disabled>
<option value="sel" selected="selected">Seleziona una Provincia:</option>
<?
for($x=0;$x<count($l2);$x++){
?>
<option value="<?=$l2[$x]['idprovincia']?>"><?=$l2[$x]['nomeprovincia']?></option>
<?
}
?>
Poi ho la pagina get.php:
include('include/class/select.class.php');
$id = $_REQUEST['id'];
$obj = new select();
$l1 = $obj->getL1($id);
$Js = "";
for($x=0; $x<count($l1); $x++){
$l2 = $obj->getL2($l1[$x]['idregione']);
for($y=0;$y<count($l2);$y++){
if($y < (count($l2)-1)){
$end = ",";
}else{
$end = "";
}
$Js .= $l2[$y]['idprovincia']."-".$l2[$y]['nomeprovincia'].$end;
}
}
?>
E infine select.class.php:
class select{
function select(){
}
function getL1($id=""){
if(!empty($id)){
$sSQL = "SELECT * FROM regioni WHERE idregione = $id";
}else{
$sSQL = "SELECT * FROM regioni";
}
$ris = mysql_query($sSQL) or die($sSQL);
while($row = mysql_fetch_assoc($ris)){
$list[] = array('idregione' => $row["idregione"],
'nomeregione' => $row["nomeregione"]);
}
return $list;
}
function getL2($id){
$sSQL = "SELECT * FROM province WHERE idregione = $id";
$ris = mysql_query($sSQL) or die($sSQL);
while ($row = mysql_fetch_assoc($ris)) {
$list[] = array('idprovincia' => $row["idprovincia"],
'nomeprovincia' => $row["nomeprovincia"]);
}
return $list;
}
}
Il tutto sembra funzionare ovvero, ho la prima select popolata con le regioni pescate dal database, e la seconda select disabilitata, quando seleziono una regione si abilita la seconda select ma, nel caso delle prime due regioni che ho nella lista con l'id 1 e 2 (marche e abruzzo), e anche con trentino e pugli ( id 5 e 6 ) la seconda select non si riempie, mi escono tre opzioni con il nome 'undefined'. Qualcuno sa dirmi cosa può essere???? Perchè con tutte va tranne che con quelle? Grazie Simone.

Rispondi quotando