le 17/06/2009 à 11:36
3 Listes déroulantes liées
Voilà ce que j'ai fait par contre je dois avoir un problème avec la valeur retourné car qu'elle que soit la salle que je choississe j'ai toujours la même porte.
<?php
/* On récupère si elle existe la valeur du batiment envoyée par le formulaire */
$idr = isset($_POST['bat'])?$_POST['bat']:null;
if(isset($_POST['ok']) && isset($_POST['salle']) && $_POST['salle'] != "")
{
$bat_selectionnee = $_POST['bat'];
$salle_selectionne = $_POST['salle'];
$porte_selectionne = $_POST['porte'];
}
?>
<h3>
<?php
$sql1 = "SELECT `id_bat`, `nom_bat`".
" FROM `batiments`".
" ORDER BY `id_bat`";
$rech_bat = mysql_query($sql1);
$code_bat = array();
$nom_bat = array();
/* On active un compteur pour les batiments */
$nb_bat = 0;
if($rech_bat != false)
{
while($ligne = mysql_fetch_assoc($rech_bat))
{
array_push($code_bat, $ligne['id_bat']);
array_push($nom_bat, $ligne['nom_bat']);
/* On incrémente de compteur */
$nb_bat++;
}
}
?>
<form name="formulaire" action="./index.php?page=info_porte&categorie=porte" method="post" id="chgsalle">
<?php
mysql_free_result($rech_bat);
/* On commence par vérifier si on a envoyé un numéro de batiment et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les salles de ce batiment */
$sql2 = "SELECT `id_salle`, `lib_salle`".
" FROM `salles`".
" WHERE `id_bat` = ". $idr ."".
" ORDER BY `id_salle`;";
$rech_salle = mysql_query($sql2);
/* Un petit compteur pour les salles */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des salles */
$code_salle = array();
$nom_salle = array();
/* On va mettre les numéros et noms des salles dans les deux tableaux */
while($ligne_salle = mysql_fetch_assoc($rech_salle))
{
array_push($code_salle, $ligne_salle['id_salle']);
array_push($nom_salle, $ligne_salle['lib_salle']);
$nd++;
}
}
?>
<table width="50%" border="0">
<tr>
<td width="45%"><p>Bâtiment de la Porte<span class="Etoile"> *</span> :</p>
<p>
<select name="bat" id="bat" onchange="document.forms['chgsalle'].submit();">
<option value="-1">Choisissez un batiment</option>
<?php
for($i = 0; $i < $nb_bat; $i++)
{
?>
<option value="<?php echo($code_bat[$i]); ?>"<?php echo((isset($idr) && $idr == $code_bat[$i])?" selected=\"selected\"":null); ?>><?php echo($nom_bat[$i]); ?></option>
<?php
}
?>
</select>
</p></td>
<td width="55%"><p>Salle de la Porte<span class="Etoile"> *</span> :</p>
<p><select name="salle" id="salle">
<option value="-1">Choisissez une salle</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_salle[$d]); ?>"<?php echo((isset($salle_selectionne) && $salle_selectionne == $code_salle[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_salle[$d]." "); ?></option>
<?php
}
?>
</select>
</p></td></tr></table></form>
<form name="formulaire" action="./index.php?page=info_porte&categorie=porte" method="post" id="chgporte">
<?php
mysql_free_result($rech_salle);
/* On commence par vérifier si on a envoyé un numéro de salle et le cas échéant s'il est différent de -1 */
if(isset($idr) && $idr != -1)
{
/* Cération de la requête pour avoir les portes de ce batiment */
$sql2 = "SELECT `id_porte`, `lib_porte`".
" FROM `portes`".
" WHERE `id_salle` = ". $idr ."".
" ORDER BY `id_porte`;";
$rech_porte = mysql_query($sql2);
/* Un petit compteur pour les portes */
$nd = 0;
/* On crée deux tableaux pour les numéros et les noms des portes */
$code_porte = array();
$nom_porte = array();
/* On va mettre les numéros et noms des portes dans les deux tableaux */
while($ligne_porte = mysql_fetch_assoc($rech_porte))
{
array_push($code_porte, $ligne_porte['id_porte']);
array_push($nom_porte, $ligne_porte['lib_porte']);
$nd++;
}
}
?>
<p><select name="porte" id="porte">
<option value="-1">Choisissez une porte</option>
<?php
for($d = 0; $d<$nd; $d++)
{
?>
<option value="<?php echo($code_porte[$d]); ?>"<?php echo((isset($porte_selectionne) && $porte_selectionne == $code_porte[$d])?" selected=\"selected\"":null); ?>><?php echo($nom_porte[$d]." "); ?></option>
<?php
}
?>
</select> </p></form>
