select interdépendants qui ne s'affiche pas

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : select interdépendants qui ne s'affiche pas

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

par xTG » 03 oct. 2014, 13:14

if(isset($idr) && $idr != -1)
$idr ne semble pas être initialisé dans le code amont.

select interdépendants qui ne s'affiche pas

par canichon » 03 oct. 2014, 09:46

bonjour a tous,

j'ai développé 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 :

Code : Tout sélectionner

<?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.