select interdépendants qui ne s'affiche pas
Posté : 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 :
J'imagine qu'il y a un soucis de syntaxe mais je ne trouve pas lequel.
Merci de votre aide.
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>
Merci de votre aide.