Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1730 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  3 Listes déroulantes liées

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

3 Listes déroulantes liées

n°1896069
rafale6930​0
Posté le 17-06-2009 à 10:07:43  profilanswer
 

Bonjour tout le monde !
Voici mon problème, après avoir trouvé plusieurs sources sur le net, j'ai réussi à lié 2 listes déroulantes mais par rapport à ce script je n'arrive pas à lié la 3ème. Je vous laisse mon script. Merci par avance de votre aide.
 
[php]<?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&amp;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&acirc;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&amp;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>[/php]
 
     

mood
Publicité
Posté le 17-06-2009 à 10:07:43  profilanswer
 

n°1896285
rufo
Pas me confondre avec Lycos!
Posté le 17-06-2009 à 15:11:00  profilanswer
 

ça se fait avec du javascript (voire de l'ajax + php), et ça a été traité je ne sais pas combien de fois sur ce forum. fais donc une recherche.
 
Et merci d'utiliser la balise code (pas php).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  3 Listes déroulantes liées

 

Sujets relatifs
Listes à choix multiple avec VBScript2 listes déroulantes liés javascript+phpmysql+ajax
2 listes déroulantes liés javascript+phpmysql+ajaxListes dépendantes
listes déroulantes liées ne marche pas avec firefox[Ajax] 3 listes déroulantes liées
Listes déroulantes liées entre ellesProbleme de Listes déroulantes liées
4 Listes déroulantes liées avec accès MySQL 
Plus de sujets relatifs à : 3 Listes déroulantes liées


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR