Partage
  • Partager sur Facebook
  • Partager sur Twitter

deux liste déroulante dynamique liées

    11 mai 2010 à 20:41:13

    Bonjour a tous,

    je n'arrive pas a adapter le code ci-dessous qui permet de lier deux listes deroulante a mes besoins.
    Je voudrais afficher dans la premiere les numéro de series de mes equipement, et dans la seconde d'apres le host name choisi par l'utilisateur, lui affiche les interfaces libre sur ce dernier.

    Ma base de données ressemble a cela:

    -- Base de données: `gestion_isp`
    --

    -- --------------------------------------------------------

    --
    -- Structure de la table `interface`
    --

    CREATE TABLE IF NOT EXISTS `interface` (
    `num_interface` int(11) NOT NULL AUTO_INCREMENT,
    `designation` text NOT NULL,
    `id_type_interface` int(11) NOT NULL,
    `position` tinyint(1) NOT NULL DEFAULT '0',
    `statut` tinyint(1) NOT NULL DEFAULT '1',
    `id_materiel` int(11) NOT NULL,
    PRIMARY KEY (`num_interface`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED AUTO_INCREMENT=3 ;

    --
    -- Contenu de la table `interface`
    --

    INSERT INTO `interface` (`num_interface`, `designation`, `id_type_interface`, `position`, `statut`, `id_materiel`) VALUES
    (1, '', 7, 0, 1, 15),
    (2, '', 7, 0, 1, 15);

    -- --------------------------------------------------------

    --
    -- Structure de la table `materiel_physique`
    --

    CREATE TABLE IF NOT EXISTS `materiel_physique` (
    `num_materiel` int(11) NOT NULL AUTO_INCREMENT,
    `num_serie` int(11) NOT NULL,
    `largeur` float NOT NULL,
    `longueur` float NOT NULL,
    `hauteur` float NOT NULL,
    `consomation_elec` float NOT NULL,
    PRIMARY KEY (`num_materiel`),
    UNIQUE KEY `num_serie` (`num_serie`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=18 ;

    --
    -- Contenu de la table `materiel_physique`
    --

    INSERT INTO `materiel_physique` (`num_materiel`, `num_serie`, `largeur`, `longueur`, `hauteur`, `consomation_elec`) VALUES
    (17, 3, 3, 3, 3, 3),
    (16, 2, 2, 2, 2, 2),
    (15, 1, 1, 1, 1, 1);


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    
    <head>
    
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" xml:lang="fr" />
    
    <title>Sélectionner un département selon la région choisie</title>
    
    <meta name="description" content="Listes déroulantes dynamiques inter-dépendantes" />
    
    <meta name="keywords" content="" />
    
    <meta name="author" content="Cyrano" />
    
    <meta name="generator" content="Zend Studio Environnement et WebExpert 5" />
    
    <meta http-equiv="imagetoolbar" content="no" />
    
    <meta http-equiv="Pragma" content="no-cache" />
    
    </head>
    
    <body style="font-family: verdana, helvetica, sans-serif; font-size: 85%">
    
    <?php
    
    if(isset($_POST['ok']) && isset($_POST['departement']) && $_POST['departement'] != "")
    
    {
    
        $region_selectionnee = $_POST['region'];
    
        $dept_selectionne = $_POST['departement'];
    
    ?>
    
    <p>Vous avez sélectionné le département <?php echo($dept_selectionne); ?> dans la région <?php echo($region_selectionnee); ?></p>
    
    <?php
    
    }
    
    ?>
    
    <h3>Trouver un département</h3>
    
    <?php
    
    /* On établit la connexion à MySQL avec mysql_pconnect() plutôt qu'avec mysql_connect()
    
    *  car on aura besoin de la connexion un peu plus loin dans le script */
    
    $connexion = mysql_pconnect($serveur, $admin, $mdp);
    
    if($connexion != false)
    
    {
    
        $choixbase = mysql_select_db($base, $connexion);
    
        $sql1 = "SELECT `id_region`, `region` FROM `region` ORDER BY `id_region`";
    
        $rech_regions = mysql_query($sql1);
    
        $code_region = array();
    
        $region = array();
    
        /* On active un compteur pour les régions */
    
        $nb_regions = 0;
    
        if($rech_regions != false)
    
        {
    
            while($ligne = mysql_fetch_assoc($rech_regions))
    
            {
    
                array_push($code_region, $ligne['id_region']);
    
                array_push($region, $ligne['region']);
    
    
    
                /* On incrémente de compteur */
    
                $nb_regions++;
    
            }
    
        }
    
        ?>
    
    <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgdept">
    
    <fieldset style="border: 3px double #333399">
    
    <legend>Sélectionnez une région</legend>
    
    <select name="region" id="region" onchange="document.forms['chgdept'].submit();">
    
      <option value="-1">- - - Choisissez une région - - -</option>
    
        <?php
    
        for($i = 0; $i < $nb_regions; $i++)
    
        {
    
    ?>
    
      <option value="<?php echo($code_region[$i]); ?>"<?php echo((isset($idr) && $idr == $code_region[$i])?" selected=\"selected\"":null); ?>><?php echo($region[$i]); ?></option>
    
    <?php
    
        }
    
        ?>
    
    </select>
    
        <?php
    
        mysql_free_result($rech_regions);
    
        /* On commence par vérifier si on a envoyé un numéro de région 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 départements de cette région */
    
            $sql2 = "SELECT * FROM `departement` WHERE `id_region` = '$idr' ORDER BY `id_departement`";
    
            if($connexion != false)
    
            {
    
                $rech_dept = mysql_query($sql2, $connexion);
    
                /* Un petit compteur pour les départements */
    
                $nd = 0;
    
                /* On crée deux tableaux pour les numéros et les noms des départements */
    
                $code_dept = array();
    
                $nom_dept = array();
    
                /* On va mettre les numéros et noms des départements dans les deux tableaux */
    
                while($ligne_dept = mysql_fetch_assoc($rech_dept))
    
                {
    
                    array_push($code_dept, $ligne_dept['id_departement']);
    
                    array_push($nom_dept, $ligne_dept['departement']);
    
                    $nd++;
    
                }
    
                /* Maintenant on peut construire la liste déroulante */
    
                ?>
    
    <select name="departement" id="departement">
    
                <?php  
    
                for($d = 0; $d<$nd; $d++)
    
                {
    
                    ?>
    
      <option value="<?php echo($code_dept[$d]); echo(isset($dept_selectionne) && $dept_selectionne == $code_dept[$d])?>" >
            <?php echo($nom_dept[$d]." (". $code_dept[$d] .")"); ?>
      
      </option>
    
                    <?php
    
                }
    
    ?>
    
    </select>
    
    <?php
    
            }
    
            /* Un petit coup de balai */
    
            mysql_free_result($rech_dept);
    
        }
    
    ?>
    
    <br /><input type="submit" name="ok" id="ok" value="Envoyer" />
    
    </fieldset>
    
    </form>
    
    <?php
    
        /* Terminé, on ferme la connexion */
    
        mysql_close($connexion);
    
    }
    
    else
    
    {
    
        /* Si on arrive là, c'est pas bon signe, il faut vérifier les 
    
        * paramètres de connexion, mot de passe, serveur pas démarré etc... */
    
    ?>
    
    <p>Un incident s'est produit lors de la connexion à la base de données, veuiillez essayer à nouveau ultérieurement.</p>
    
    <?php
    
    }
    
    ?>
    
    </body>
    
    </html>
    
    • Partager sur Facebook
    • Partager sur Twitter
      11 mai 2010 à 22:20:00

      Edite ton message à l'aide du bouton Image utilisateur et utilise le zCode pour présenter ton code proprement.


      <code type="html">
      <!-- Ici ton code HTML -->
      </code>
      <code type="javascript">
      // Ici ton code JS
      </code>
      <code type="php">
      // Ici ton code PHP
      </code>
      <code type="sql">
      Ton code SQL ?
      </code>
      

      • Partager sur Facebook
      • Partager sur Twitter

      deux liste déroulante dynamique liées

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown