Bonjour,

je débute sur PHP et je suis confronté à l'impossiblité de voir valoriser une variable qui se trouve en amont de mon formulaire mais que je souhaite utiliser dans le formulaire.

Ce programme récupère récupère les information d'un bon de travail pour lequel je souhaite que l'intervenant s'affecte ainsi que l'atelier correspondant.

Ma question est de comprendre pourquoi une variable posiitonnée avant le test sur le submit (dans mon exemple $a) du formulaire (Action1 qui correspond à VALIDER) n'est pas valorisée avec sa valeur dans la partie du programme après le test if ($action1 == "VALIDER"). En vous remerciant pour votre aide:

Voici le code qui ne me donne pas la valeur de la variable $a:
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<?php
//* Appel des sous-programmes de pagination (pied-haut-centre) et des variables
include ("./includes/config.inc.php");
include ("./includes/haut.inc.php");
include ("./includes/variables.inc.php");
include ("./includes/bon_a_affecter.inc.php");
include ("./includes/ctrl_edite_bon.inc.php");
include("./includes/connexion_bdd.inc.php");
connexion();
//******* Liste des champs de la Table demande **************************
$valeurs_colonnes1="D.Id_dem,D.Date_dem,D.Nom_demandeur,D.Prenom_demandeur,D.Grade_demandeur,D.Id_uf,D.Local,SI.Nom_site,D.Description_demande,P.Libelle_priorite_dem";
 
// récupération des variables postées
//if( isset( $_POST["recherche1"] ) ) $recherche1 = $_POST["recherche1"];
//if( isset( $_POST["Nomint"] ) ) $Nomint = $_POST["Nomint"];
//if( isset( $_POST["Prénomint"] ) ) $Prénomint = $_POST["Prénomint"];
//if( isset( $_POST["Iddem"] ) ) $Iddem = $_POST["Iddem"];
//if( isset( $_POST["mon_champ"] ) ) $atelier = $_POST["mon_champ"];
 
//Contrôle des champs du formulaire pour permettre l'effacement ou au contraire l'enregistrement
//$action1 = isset($_POST["Action1"]) ? $_POST["Action1"]: '';
$action1 = $_POST["Action1"];
// Formulaire de saisie du Nom et Prénom de l'intervenant qui s'affecte le Bon de Travaux
echo "<h4>Indiquer le Nom et Prénom de l'intervenant qui affecte l'intervention</h4>";
 
echo '<form name = "bon_affectation" method = "POST" onSubmit = "return checkFields()";>';
echo "<h5><label>Nom de l'intervenant</label> |";
echo '<input type = "text"   name = "Nomint" size="30" />';
echo "<label> Prénom de l'intervenant</label> |";
echo '<input type = "text"   name = "Prénomint" size="30" /><br><br>';
echo "</h5>";
 
// récupération des variables postées
if( isset( $_POST["Nomint"] ) ) $Nomint = $_POST["Nomint"];
if( isset( $_POST["Prénomint"] ) ) $Prénomint = $_POST["Prénomint"];
if( isset( $_POST["Iddem"] ) ) $Iddem = $_POST["Iddem"];
 
echo "<h4>Sélectionnez l'atelier à affecter au bon de travaux et cliquer sur Valider</h4>";
 
// Recherche de tous les champs de la table ateliers pour offrir la liste de sélection
$query1 = "SELECT * FROM $tableateliers";
// exécution de la requête
$resultat1  = mysql_query( $query1 ) OR die( "[1]Impossible d'exécuter la requête" );
//Affichage du formulaire de sélection de l'atelier pour attribution du bon de travaux
echo '<form method="post">';
echo '<select name="Atelier">';
	while ($array1 = mysql_fetch_assoc($resultat1))
	{
        if ($Atelier == $array1["Id_atelier"])
		{
            echo '<option value="' . $array1['Id_atelier'] . '" selected>' . $array1['Libelle_atelier'] . '</option>';
        } else
		{
            echo '<option value="'.$array1['Id_atelier'] . '">' . $array1['Libelle_atelier'] . '</option>';
        }
    }
echo '</select>|';
echo '<input type="submit" name="Action1" value="VALIDER">';
echo '</form>';
 
// Affichage de l'Atelier sélectionné
if ($Atelier)
{
	$query2 = mysql_query("SELECT Libelle_atelier FROM $tableateliers WHERE (Id_atelier='$Atelier')") or die (mysql_error());
	//renvoi du résultat de la requête précédente dans un tableau
	$array2 = mysql_fetch_assoc($query2);
	echo 'Vous avez retenu d\'affecter au bon de travaux, l\'atelier' . $array2['Libelle_atelier'] .'<br>';
}
 
//******* Liste des champs de la Table demande **************************
$valeurs_colonnes1="D.Id_dem,D.Date_dem,D.Nom_demandeur,D.Prenom_demandeur,D.Grade_demandeur,D.Id_uf,D.Local,SI.Nom_site,D.Description_demande,P.Libelle_priorite_dem";
 
// Recherche de tous les champs de la table demande pour le bon de travaux en cours d'affectation issu de Selection_bon.php
$query3 = "SELECT $valeurs_colonnes1 FROM $tabledem AS D, $tablesites AS SI, $tableprioritedem AS P WHERE (D.Id_dem = '$Iddem')AND (D.Id_site=SI.Id_site) AND (D.Id_priorite_dem = P.Id_priorite_dem)";
// exécution de la requête
$resultat3  = mysql_query( $query3 ) OR die( "[3]Impossible d'exécuter la requête" );
// puis obtention du nombre de lignes retournées par MySQL
$nb_lignes = @mysql_num_rows($resultat3);
 
if ($nb_lignes!=0)
{
	$nb_colonnes=10;
	echo "<h3><center>Bon de Travaux à affecter</center></h3>";
	echo "<table width=95% cellpadding=2 cellspacing=2><tr  bgcolor=#FFCC99 align=center>
	<td><FONT SIZE=2>N° du bon</td><td><FONT SIZE=2>Date du bon</td><td><FONT SIZE=2>Nom du demandeur</td><td><FONT SIZE=2>Prénom</td>
	<td><FONT SIZE=2>Fonction du demandeur</td><td><FONT SIZE=2>UF</td><td><FONT SIZE=2>Localisation</td><td><FONT SIZE=2>Site<td><FONT SIZE=2>Description de la demande</td><td><FONT SIZE=2>Niveau de priorité</td></tr>
	<tr bgcolor=#e2f1f4>";	
	for ($i=0;$i<$nb_lignes;$i++)
	{
		for ($j=0;$j<$nb_colonnes;$j++)
		echo "<td><FONT SIZE=1>" . mysql_result($resultat3,$i,$j) . "</td>";
		//récupération de Id_site sur le première ligne (0) et 8 ème champ ( il faut compter de 0 à 7)
		//$Libsite1 = mysql_result($resultat3,0,7);
		//$Iddem1 = mysql_result($resultat3,0,0);
		echo "<tr bgcolor=#e2f1f4>";
	}
	echo "</tr>";
	echo "</table>";
 
	$Libsite1 = mysql_result($resultat3,0,7);
	//$array3['Libsite'] = $Libsite1;
	$Iddem1 = mysql_result($resultat3,0,0);
	$a="toto";
 
	// Récupération de Id_site
	$query4 = "SELECT Id_site FROM $tablesites WHERE (Nom_site='".addslashes($Libsite1)."')";
 
	// exécution de la requête
	$resultat4  = mysql_query( $query4 ) OR die( "[4]Impossible d'exécuter la requête" );
	$Idsite1 = mysql_result($resultat4,0,0);
	$a =" coucou ";
}
// VALIDATION DU FORMULAIRE bon_affectation
if ($action1 == "VALIDER")
{
//ci dessous je ne récupère pas la valeur de ma variable	
echo " valeur de a  $a  ";
	$Date_affect='Now()';
	$colonnes="Date_affect,Id_site,Id_dem";
	$valeurs_colonnes3="'$Idsite1','$Iddem1'";
	//$valeurs_colonnes3="'$Idsite1','$array4'";
	$query5 = "INSERT INTO $tableaffectations ($colonnes) VALUES ($Date_affect,$valeurs_colonnes3)";
	// exécution de la requête
	$resultat5  = mysql_query( $query5 ) OR die( "[5]Impossible d'exécuter la requête" );
	//Ligne ci-dessous récupère le numéro d'affectation du bon qui est la clé de la table affectations autoincrémentée
	$id_affect = mysql_insert_id();
	echo " - id_affect0 =$id_affect - ";
 
$Nomint = $_POST["Nomint"];
$Prénomint = $_POST["Prénomint"];
$Atelier1 =$_POST["Atelier"];
 
	//La ligne ci-dessous permet d'empêcher la réactualisation de la page si on fait retour vers page précédente et validation du formulaire depuis le navigateur
	session_cache_limiter('public, must-revalidate');
 
	$query6 = mysql_query("SELECT Libelle_atelier FROM $tableateliers WHERE (Id_atelier='$Atelier1')") or die (mysql_error());
	$Nom_atelier = mysql_result($query6,0,0);
	echo "<h5>Vous avez retenu d'affecter au bon de travaux, l'atelier $Nom_atelier<br></h5>";
 
	// Mise à jour de la table Demande du bon concerné avec le statut_demande en cours
	$query7 = "UPDATE $tabledem SET Id_statut_dem ='01' WHERE Id_dem = '$Iddem1'";
	// exécution de la requête
	$resultat7  = mysql_query( $query7 ) OR die( "[7]Impossible d'exécuter la requête !" );
 
	// Mise à jour de la table Demande du bon concerné avec le statut_demande en cours
	$query8 = "UPDATE $tableaffectations SET Nom_intervenant = '$Nomint', Id_atelier ='$Atelier1', Prenom_intervenant = '$Prénomint' WHERE (Id_affect = '$id_affect')";
 
	// exécution de la requête
	$resultat8  = mysql_query( $query8 ) OR die( "[8]Impossible d'exécuter la requête 3!" );
	echo " Il n\'y a plus de bon à affecter merci de revenir à la page d\'acceuil";
	include ("./includes/pied.inc.php");
	mysql_close($liendb);
	exit();
	// Mise à jour de la table Demande du bon concerné avec le statut_demande en cours
	//$query2 = "UPDATE $tabledem SET Id_statut_dem ='01' WHERE Id_dem = '$Iddem1'";
	// exécution de la requête
	//$resultat2  = mysql_query( $query2 ) OR die( "[4]Impossible d'exécuter la requête !" );
	// Mise à jour de la table Affectations du bon concerné avec le statut_demande en cours
	//$Date_affect='Now()';
	//$colonnes="Date_affect,Id_site,Id_dem";
	//$valeurs_colonnes3="'$Idsite1','$Iddem1'";
	//$query3 = "INSERT INTO $tableaffectations ($colonnes) VALUES ($Date_affect,$valeurs_colonnes3)";
	// exécution de la requête
	//$resultat3  = mysql_query( $query3 ) OR die( "[5]Impossible d'exécuter la requête !" );
	//Ligne ci-dessous récupère le numéro d'affectation du bon qui est la clé de la table affectations autoincrémentée
	//$id_affect=mysql_insert_id();
}
mysql_close($liendb);
echo"</body>";
include ("./includes/pied.inc.php");
?>