Combo box a cascata
Salve a tutti. Sono da pochissimo entrato nel mondo HTML e PHP e pertanto scusatemi se non capirò al volo le vs. risposte. Ho costruito in una form 3 combo box (vedi sotto).
MODIFICA.PHP
<div prova="content">
<h2>Modifica NON CONFORMITA' num. <?php echo $id ?></h2>
<br/>
<!--<center><div id="warning"> in campi con * sono obbligatori</div></center>-->
<form name="mod" action="index.php" method="post" >
<center>
<!--PARTE CHE SI COMPILA IN AUTOMATICO-->
<table class="datiBox" align="center">
<?php
/*riempi i campi anno prog e data*/
// include 'contatore.php';
/*sotto prende i valori dall'include benvenuto che seleziona i dati operatore dalla login*/
?>
<input type="hidden" name="ID" value="<?php echo $id;?>" readonly="readonly">
<tr align="left">
<td>Setting</td>
<td><input type="text" class="text" name="Setting" value="<?php echo $get_info['Zona'];?>" readonly="readonly" style="width:150px;"></td>
<td></td>
<td>Sede</td>
<td><input type="text" class="text" name="Sede" value="<?php echo $get_info['Sede'];?>" readonly="readonly" style="width:200px;"></td>
<td></td>
<td>Operatore</td>
<td><input type="text" class="text" name="Op_view" value="<?php echo $get_info['Nome'].' '.$get_info['Cognome'];?>" readonly="readonly" style="width:150px;">
<input type="hidden" name="Operatore" value="<?php echo $get_info['UserId'];?>" />
</td>
</tr>
</table>
<br/>
<h3>I campi contrassegnati con * sono OBBLIGATORI !</h3>
<!--PARTE DA INSERIRE TIPOLOGIA e TEMPI-->
<table class="datiBox2" align="center">
<tr align="left">
<td class="bold"><h3>TIPO STRUTTURA </h3></td>
<tr>
<td class="bold">Struttura Dipartimentale :</td>
<td><?php SlCheck($link,'struttura_dip','STRUTTURA_DIP','ID' ,'DESCRIZIONE_DIP','200',$mod['STRUTTURA_DIP']);?></td>
<td></td>
<td class="bold">Struttura U.F.C. :</td>
<td><?php SlCheck($link,'struttura_ufc','STRUTTURA_UFC','ID' ,'DESCRIZIONE_UFC','200',$mod['STRUTTURA_UFC']);?></td>
</tr>
<tr align="left">
<td class="bold">Struttura Setting :</td>
<td><?php SlCheck($link,'struttura_setting','STRUTTURA_SETTI NG','ID','DESCRIZIONE_SETTING','200',$mod['STRUTTURA_SETTING']);?></td>
<td></td>
</table>
<br/>
FUNCTIONS.PHP
function SlCheck($link,$nometabella, $sel_name, $nomeid, $nomedesc, $width,$datimod){
// selected sul valore della query
//query per estrarre i dati
$query2="SELECT * FROM $nometabella ORDER BY $nomeid";
//echo $query;
$result2 = mysqli_query($link,$query2)or die("SELECT Error: ".mysqli_error($link));
//genera select
echo "<select name=".$sel_name." id=\"select\" style=width:$width>\"";
echo "<OPTION value=\"\"> ";
while ($get_info = mysqli_fetch_array($result2)){
if ($datimod==$get_info[$nomeid]){
echo "<OPTION value=".$get_info[$nomeid]." SELECTED> ".$get_info[$nomedesc]."";
} else {
echo "<OPTION value=".$get_info[$nomeid]."> ".$get_info[$nomedesc]."";
}
}//chiude while
echo "</select>\n";
}
Attualmente seleziono in modo indipendente le tre combo box. Vorrei migliorare la cosa in modo che selezionando un elemento della 1° combo box possa filtrare i dati della 2° combo box sulla base della scelta della 1° combo box. Anche la 3° combo box dovrebbe far visualizzare solo gli elementi pertinenti sulla base della scelta della 1° e 2° combo box. Per esempio se scelgo sulla 1° combo box il valore "Dipartimento" le altre due combo box devono essere vuote mentre se sempre nella 1° combo box se scelgo il valore vuoto (campo vuoto) devo poter vedere tutti i dati della 2° combo box e se seleziono "PISLL" devo vedere sulla 3° combo box solo i dati "PISLL Nord-Ovest" "PISLL Sud-Est" ecc. I dati delle tre combo box sono in tre tabelle distinte MySQL. Sicuramente siete in grado di aiutarmi e vi ringrazio già in anticipo.

Rispondi quotando