PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 02-10-2014 15:54:29

canichon
Membre
Inscription : 02-09-2014
Messages : 6

select interdépendants qui ne s'affiche pas

bonjour a tous,

j'ai développer 2 select interdependants avec des valeurs qui proviennent d'une BDD.

quand je les fais fonctionner juste à 2, ca marche mais quand je l'intègre dans ma page ( un peu plus compliquée ), le 2eme select ne s'affiche pas.

Ci dessous le code :


<?php
 
/* Variables de connexion : ajustez ces paramètres selon votre propre environnement */
 
$serveur = "localhost";
$admin   = "root";
$mdp     = "";
$base    = "test";
 
/* On récupère si elle existe la valeur du contrat envoyée par le formulaire */

$info_imputation = isset($_POST['imputation'])?$_POST['imputation']:null;
/*$info_contrat = isset($_POST['contrat'])$_POST['contrat']:null; */

?>
<html lang="fr">
  <head>
    <meta content="text/html; charset=windows-1252" http-equiv="content-type">
    <link rel="stylesheet" href="style.css">
    <title>Ajouter une RNC</title>
  </head>
  <body style="color:rgb(175,0,124); font-family:arial; background-color : rgb(179,179,179);"  >
   
    <?php
      if(isset($_POST['ok']) && isset($_POST['item']) && $_POST['item'] != "")
      { $contrat_selectionnee = $_POST['contrat'];
        $item_selectionne = $_POST['item'];
      }
      $connexion = mysql_pconnect($serveur, $admin, $mdp);
 
      if($connexion != false)
      { $choixbase = mysql_select_db($base, $connexion);
       
        $sql1 = "SELECT num_contrat, nom_client, type_equipement FROM test.commande";
        $rech_contrat = mysql_query($sql1);
       
        $num_contrat = array();
        $nom_client = array();
        $type_equipement = array();
   
        /* On active un compteur pour les contrats */
        $nb_contrat = 0;
 
        if($rech_contrat != false)
        { while($ligne = mysql_fetch_assoc($rech_contrat))
          { array_push($num_contrat, $ligne['num_contrat']);
            array_push($nom_client, $ligne['nom_client']);
            array_push($type_equipement, $ligne['type_equipement']);
       
            /* On incrémente de compteur */
            $nb_contrat++;
          }
        }
    ?>
 
  <form action="<?php echo($_SERVER['PHP_SELF']); ?>" method="post" id="chgitem">
   
    <!-- IMPUTATION -->
    <table name ="Imputation" width = "100%" class= "tabcontrat">
      <tbody>
        <tr>
          <td width = "15%"> <!--label Imputation-->
            <label for="imputation">Imputation :</label>
          </td>
          <td width = "35%"> <!--input Imputation-->
            <select required="required" style="width:200px; background-color : rgb(229,229,229);" name="imputation"; >
              <option>Type d'imputation</option>
              <?php          
                $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
                $requete = $bdd->query('select * from test.imputation');
                while ($donnees = $requete->fetch())
                { echo '<option>'.$donnees['imputation'].'</option>'; }
              ?>;
            </select>
          </td>
        </tr>
        <tr>
          <td width = "20%"> <!--label Contrat-->
            <label for="contratClient">Contrat :</label>
          </td>
          <td width = "35%"> <!--input Contrat-->
            <select style="width:200px; background-color : rgb(229,229,229);">
            <option value="-1">Numéro de Contrat</option>
              <?php
                for($i = 0; $i < $nb_contrat; $i++)
                {
              ?>
                <option value="<?php echo($num_contrat[$i]); ?>"<?php echo((isset($idr) && $idr == $num_contrat[$i])?" selected=\"selected\"":null); ?>><?php echo($num_contrat[$i]); ?></option>  
                <?php
                }
                ?>
            </select>
          </td>
        </tr>
        <tr>
          <td width = "20%"> <!--label Item-->
            <label for="contratClient">Item :</label>
          </td>
          <td width = "35%"> <!--input Item-->
            <?php
              mysql_free_result($rech_contrat);
 
              /* On commence par vérifier si on a envoyé un numéro de contrat et le cas échéant s'il est différent de -1 */
              if(isset($idr) && $idr != -1)
              {
                /* Création de la requête pour avoir les items de ce contrat */
                $sql2 = "SELECT num_item, designation_item FROM test.item where contrat=\"". $idr ." \";";
 
                if($connexion != false)
                { $rech_item = mysql_query($sql2, $connexion);
 
                  /* Un petit compteur pour les items */
                  $nd = 0;
 
                  /* On crée deux tableaux pour les numéros et les noms des items */
                  $num_item = array();
                  $desig_item = array();
 
                  /* On va mettre les numéros et noms des départements dans les deux tableaux */
                  while($ligne_item = mysql_fetch_assoc($rech_item))
                  {
                    array_push($num_item, $ligne_item['num_item']);
                    array_push($desig_item, $ligne_item['designation_item']);
 
                    $nd++;
                  }
 
                  /* Maintenant on peut construire la liste déroulante */
                  ?>
                    <select name="item" id="item" style="width:175px; background-color : rgb(229,229,229);">
                    <?php  
                      for($d = 0; $d<$nd; $d++)
                      {
                      ?>
                      <option value="<?php echo($code_item[$d]); ?>"<?php echo((isset($item_selectionne) && $item_selectionne == $code_item[$d])?" selected=\"selected\"":null); ?>><?php echo($num_item[$d]." - ". $desig_item[$d] .""); ?></option>
                      <?php
                      }
                      ?>
                  </select>
                  <?php
                }
                /* Un petit coup de balai */
                mysql_free_result($rech_item);
              }
            ?>
          </td>
        </tr>
      </tbody>
    </table><br><br>
   
  </body>
</html>
 

J'imagine qu'il y a un soucis de syntaxe mais je ne trouve pas lequel.

Merci de votre aide.

Hors ligne

#2 02-10-2014 22:05:14

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : select interdépendants qui ne s'affiche pas

Bonsoir,

Soir vous utilisez PDO partout soit mysqli mais pas les deux en même temps

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 03-10-2014 08:13:18

canichon
Membre
Inscription : 02-09-2014
Messages : 6

Re : select interdépendants qui ne s'affiche pas

C'est possible...

je decouvre php, mysql et javascript et je constitue mon programme avec des bouts de script péchés a gauche et a droite sans tout comprendre.

Néanmoins, comme je le dis dans mon premier post, ca fonctionne... il y a juste un soucis quand je l'intègre dans ma page complète...

Hors ligne

Pied de page des forums