Bonjour la famille
j'ai un souci de variable lors de l'insertion des données dans la base de données.
En fait, j'ai lié deux listes déroulantes (grâce à un open source ajax que j'ai piqué sur internet) dans mon formulaire de telle manière que en cliquant sur une option de la première liste déroulante , la deuxième liste déroulante qui est située dans un fichier "traitement.php" apparait ( grâce à l'outil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
include("traitement.php")
).
Le pb c'est que lorsque j'envoie les données dans la bdd, une erreur me disant que la variable de la deuxieme liste deroulante n'existe pas.
Je ne sais pas quoi faire.
Voici mon code;
Formulaire:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
	session_start();
	include("nav.php");
?>
<html>
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	<meta http-equiv="Content-Language" content="fr" />
	<script type="text/javascript" src="fonctions.js"></script>
	<link rel="stylesheet" href="entree_style.css"/>
	</head>
<article>
<br/><span class="bonjour">Bonjour monsieur <?php echo $_SESSION['pseudo'];?></span>
<h2>ENREGISTRER UNE ENTREE</h2>
<form method="post" action="entree.php"/>
	<div id="colonne">
	<p><label for="bc">Numero bon de commande</label>
	<br/><input type="text" id="bc" name="bc" required/></p>
	<p><label for="sous_famill">Sous-famille</label>
	<br/><select name="sous_famill" id="sous_famill" onchange="designation(this.value);" >
	<option value="vide">-  Choisissez une sous-famille - </option>
	<?php
	include ("connection.php");
	$var=0;
	$reponse = $bdd ->query('SELECT * FROM codification WHERE Type = \'piece de rechange\'');
	 while($donnees = $reponse ->fetch())
	 {
 
		$var = $donnees['Sous-famille'];
 
		?>
		<option value ="<?php echo $var;?>"> <?php echo $var;?> </option> 
	<?php
	}
		?>
	<?php
	$reponse-> closecursor();
	?>
		</select></P>
	<p><label for ="ref_entree">Reference</label>
	<br/><input type="text" id="ref_entree" name="ref_entree"/></p>
	<p><label for="date_entr">Date entree</label>
	<br/><input type="date" id="date_entr" name="date_entr" required/></p>
	<p><label for="qt_entr">Quantite</label>
	<br/><input type="number" id="qt_entr" name="qt_entr" min="0" required/></p>
	</div>
	<div id="colonne2">
	<p><label for="empl_entree">Emplacement magasin</label>
	<br/><input type="text" id="empl_entree" name="empl_entree" required /></p>
	<p><label for="repere">Repere equipement</label>
	<br/><input type="text" id="repere" name="repere"/></p>
	<p><label for="famille_equi">Famille equipement</label>
	<br/><input type="text" id="famille_equi" name="famille_equi"/></p>
	<p><label for="prix">Prix d'achat</label>
	<br/><input type="number" id="prix" name="prix" value="0" required/></p>
	<p><input type="submit" value="enregistrer" name="enregistrer_entree"/></p>
	</div>
	</article>
	<div id="Blocdesignation">
 
<?php
		if(isset($_POST['sous_famill'])){
//on créer une variable utilisé dans la page "traitement2.php"
$include = 1;
//on inclue la page
include('traitement.php');
}
?></div>
 
	<div id="modifier"><a href="modif_entree.php">modifier une entree </a></div>
	<div id="retour"><a href="pdr.php">page d'acceuil</a></div>
	<div id="produit"><a href="nouveau_produit">Enregistrer un nouveau produit</a></div>
	<div id="consulter_entree"><a href="consulter_entree.php">Consulter les entrees</a></div>
</form>
<?php
 
include("connection.php");
if(isset($_POST['enregistrer_entree'])) 
{
 
		$req = $bdd -> prepare("INSERT INTO entree(Designation_entree, Reference_entree, Repere_entree, Famille_equip_entree, Date_entree, Qte_entree, Sous_famille_entree, Prix_achat, Num_BC, Emplacement_entree) VALUES(:dese, :re, :repe, :fee, :de, :qe, :sfe, :pa, :nmc, :ee)");
			$req -> execute(array(
			'dese' => $_SESSION['designation'],
			're' =>	$_POST['ref_entree'],
			'repe' => $_POST['repere'],
			'fee' => $_POST['famille_equi'],
			'de' => $_POST['date_entr'],
			'qe' =>  $_POST['qt_entr'],
			'sfe' => $_POST['sous_famill'],
			'pa' => $_POST['prix'],
			'nmc' => $_POST['bc'],
			'ee' =>  $_POST['empl_entree']
		));
}
?>
Page traitement.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
<!DOCTYPE HTML>
<head> <meta charset="utf-8" /></head>
<?php
//Numéro de la région
if(isset($_POST["sous_famill"]) && $_POST["sous_famill"] != 'vide'){
/*Si la variable $include n'existe pas c'est que le numéro de la région passe par AJAX. On a donc besoin d'avoir une connexion avec la base de données.*/
/*Quand on poste le formulaire, cette page est inclue directement dans le div "blocDepartements", donc la connexion est inutile.*/
/*Si on inlcue cette page au moment de la validation, c'est uniquement pour garder la sélection "selected" de la liste.*/
if(!isset($include)){
//On indique le Content-Type utilisé
header('Content-Type: text/html; charset="iso-8859-1"');
 
include("connection.php");
 
}
 
?>
	<p><label>Designation de l'article : </label>
 <br/><select name="designation" id="designation">
<option value="vide">- - Choisissez une designation - - </option>
 
 
<?php
$variable = $_POST['designation'];
$var=0;
//On sélectionne les départements en fonction du numéro de la région
$reponse1 = $bdd -> query('SELECT * FROM pdr ORDER BY Designation_pdr');
//On boucle
while($donnees1 = $reponse1 ->fetch())
{
	if($donnees1['Sous-famille_pdr'] == $_POST['sous_famill'])
	{
		$var= $donnees1['Designation_pdr'];
	?>
	<option value ="<?php echo $var;?>"> <?php echo $var;?> </option>
	<?php
	}
	?>
<?php
}
?>
<?php
$reponse1-> closecursor(); 
?>
</select></p>
<?php
}
?>
En restant dans l'attente d'une réponse
Bien cordialement