Pour garder tes choix il faut que quand dans tes boucles tu arrive a l'option qui a été sélectionné précédemment tu rajoute l'attribut selected="selected" dans la balise option.
Par contre je ne vois pas pourquoi le 3eme formulaire ne s'affiche pas.
Version imprimable
Pour garder tes choix il faut que quand dans tes boucles tu arrive a l'option qui a été sélectionné précédemment tu rajoute l'attribut selected="selected" dans la balise option.
Par contre je ne vois pas pourquoi le 3eme formulaire ne s'affiche pas.
Pour faire à peu près ce que Asmodean suggère :
Code:
1
2
3 echo "<option value='".$row["NUM_DISCIPLINE"]."'"; echo (isset ($_POST['discipline']) && $row["NUM_DISCIPLINE"])? 'selected="selected"' : ''; echo ">".$txt."</option>";
Citation:
Envoyé par Celira
Ca marche pas, pour n'importe quelle ligne de discipline que je valide il me garde pas celui que je viens de valider, il m'affiche le dernier de la liste, alors que la liste des comités est la bonne. Et la derniere liste ne s'affiche pas POURQUOI ??
euh...:oops: oui j'ai oubié un 'tit bout du code :roll: Telle que je l'ai écrite, la condition est toujours vraie. Donc à chaque tour de boucle, il sélectionne l'option qu'il vient d'écrire. Donc à la fin de la boucle, c'est la dernière ligne qui est sélectionnée.
Là ça devrait être mieux !
si tu veux la version développée (sans l'expression ternaire ? :) les 2 font la même choseCode:
1
2
3 echo "<option value='".$row["NUM_DISCIPLINE"]."'"; echo (isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline']))? ' selected="selected" ' : ''; echo ">".$txt."</option>";
Code:
1
2
3
4
5 echo "<option value='".$row["NUM_DISCIPLINE"]."'"; if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) { echo ' selected="selected" '; } echo ">".$txt."</option>";
Merci, ca marche. Mais qu'est-ce que j'ai si mal codé pour ne pas avoir la troisième liste ?
Aucune idée. Si je le savais, je te l'aurais déjà dit :aie:
Rajoute un echo juste après chaque if, histoire de voir où ça ne va pas.
Code:
1
2
3
4
5
6 if(isset($_POST['comite'])) { echo " post comite existe "; if ($_POST['comite']!=NULL) { echo "post comite non vide";
Pour avoir dans la 2e liste le même type de sélection que tu as dans la première, il faut adapter le code que je t'ai donné en remplaçant discipline par comite et num_discipline par num_comite.
Et pour mes listes c'est bon ca marche
Meme ca ca marche pas our la troisieme liste, je n'ai rien qui est affiché nulle part. Bizarre!!
Et si juste avant if(isset($_POST['comite'])) tu mets :
Ca donne quoi quand tu arrives sur la page après avoir validé le deuxième formulaire?Code:
1
2
3
4 echo "<pre>"; print_r($_POST); echo "</pre>";
Avant que je valide le comite ca m'affiche ca :
Array
(
[discipline] => 51
[submit] => Valider Resultat
)
Quand j'ai validé le comité j'ai plus rien. Juste la 1 ere liste à l'écran
Ha ben oui c'est normal... Il faut donc que tu mettes un input hidden dans ton deuxième formulaire :
Parce que ton if( comite ) est dans le if( discipline ).Code:echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">';
Et d'ailleurs j'imagine qu'après ces 2 formulaire tu souhaiterais traité tes infos...donc il faudra surement que dans le 3eme formulaire tu mette discipline et comite en hidden comme pour le deuxieme.
YESSSSS c'est bon ca marche.
Merci c'est bon c'était juste ca.
Petite question, j'espère que ce sera la dernière
J'ai un table encadrement avec nom et prénom
Je veux afficher le nom et le prénom de la personne dans ma liste déroulante, je fais comment ?
quelque chose comme :
Code:echo '<option value="...">'.$nom.' '.$prenom.'</option>'
Pourquoi j'ai rien dans ma liste de personnes ? :cry: :cry: :arf: :pc:
sachant que dans ma requete $reqmwt j'ai mis NUM_ENCADREMENT, meme si je ne veux pas l'afficher
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <? //liste des personnes de l'encadrement echo "<form name='formencadrement' method='post' action=''>"; echo "<br><br><br>"; $reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT"; $mvt=mysql_query($reqmvt); echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($sqll)) { $sqlll="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from encadrement"; $query=mysql_query($sqlll); $rown=mysql_fetch_array($query); $nom=strtoupper($rown["NOM_ENCADREMENT"]); $prenom=strtolower($rown["PRENOM_ENCADREMENT"]); $prenom=ucfirst($prenom); echo "<option value=' '>".$nom." ".$prenom."</option>"; } echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo "</form>"; ?>
Pense a mettre les or die( mysql_error() ) derrière tout tes mysql_query pour savoir quand tu fais des erreurs.
Ca c'est le bout de code qui doit bugger. J'ai rajouter les 2 or die(mysql_error()) et il m'affiche rien
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 <? //liste des personnes de l'encadrement echo "<form name='formencadrement' method='post' action=''>"; echo "<br><br><br>"; $reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT"; $mvt=mysql_query($reqmvt)or die( mysql_error() ); echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($sqll)) { $sqlll="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from encadrement"; $query=mysql_query($sqlll)or die( mysql_error() ); $rown=mysql_fetch_array($query); $nom=strtoupper($rown["NOM_ENCADREMENT"]); $prenom=strtolower($rown["PRENOM_ENCADREMENT"]); $prenom=ucfirst($prenom); echo "<option value=''>".$nom." ".$prenom."</option>"; } echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo "</form>"; ?>
Ca n'affiche rien ou la liste déroulante est vide?
Et pourquoi tu refais unre requête dans ta boucle quasiment identique a la première?
La liste déroulante est vide. Quand j'ai dis ca affiche rien c'était pour les messages d'erreur
A mon avis tu n'a pas besoin de la deuxieme requête...
Code:
1
2
3
4
5
6
7 while ($row=mysql_fetch_array($mvt)) { $nom=strtoupper($row["NOM_ENCADREMENT"]); $prenom=strtolower($row["PRENOM_ENCADREMENT"]); $prenom=ucfirst($prenom); echo "<option value=''>".$nom." ".$prenom."</option>"; }
ca devrait suffir ça nan?
EDIT : Attention a bien utilis $mvt dans la boucle while
Chaque fois, ca marche je modifie un truc et re message d'erreur
Code:
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<? require "Includes/fonctions.php"; ?> <br><hr width="100%"><br><div class="titre">Selectionnez la personne</div><br><br> <? //liste des personnes de l'encadrement echo "<form name='formencadrement' method='post' action=''>"; echo "<br><br><br>"; $reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT" $mvt=mysql_query($reqmvt)or die(mysql_error()); echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($mvt)) { $nom=strtoupper($row["NOM_ENCADREMENT"]); $prenom=strtolower($row["PRENOM_ENCADREMENT"]); $prenom=ucfirst($prenom); echo "<option value=''>".$nom." ".$prenom."</option>"; echo "<option value='".$row["NUM_ENCADREMENT"]."'"; if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) { echo ' selected="selected" '; } echo ">".$txt."</option>"; } echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo "</form>"; ?> <? $longeur_max=60; //premier formulaire : choix de la discipline //liste des fédérations echo "<form name='formdiscipline' method='post' action=''>"; echo "<br><br><br>"; $reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE"; $mvt=mysql_query($reqmvt); echo "<select name='discipline'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($mvt)) { $txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max); echo "<option value='".$row["NUM_DISCIPLINE"]."'"; if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) { echo ' selected="selected" '; } echo ">".$txt."</option>"; } echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo "</form>"; if (isset($_POST['discipline'])) { if ($_POST['discipline']!=NULL) { echo "<form name='formcomite' method='post' action=''>"; echo "<br><br><br>"; $comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION, DISCIPLINE WHERE comite.num_ligue=ligue.num_ligue AND federation.num_federation=discipline.num_federation AND ligue.num_federation=federation.num_federation AND discipline.num_discipline=".$_POST['discipline']; $reqcomite=mysql_query($comite)or die(mysql_error()); echo "<select name='comite'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($reqcomite)) { $txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max); echo "<option value='".$row["NUM_COMITE"]."'"; if(isset ($_POST['comite']) && ($row["NUM_COMITE"]==$_POST['comite'])) { echo ' selected="selected" '; } echo ">".$txt."</option>"; } echo "</select><br><br>"; echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">'; echo "</form>"; if(isset($_POST['comite'])) { if ($_POST['comite']!=NULL) { echo "<form name='formclub' method='post' action=''>"; $club="select NUM_CLUB, NOM_CLUB FROM CLUB WHERE club.num_comite=".$_POST['comite']; $reqclub=mysql_query($club)or die(mysql_error()); echo "<select name='club'><option value=''>-- Selectionnez --</option>"; while ($row=mysql_fetch_array($reqclub)) { $txt=Tronquer_Texte($row["NOM_CLUB"], $longeur_max); echo "<option value='".$row["NUM_CLUB"]."'>".$txt."</option>"; } echo "</select><br><br>"; echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>"; echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">'; echo "</form>"; } } } } ?>
Ligne 10 (la ligne en rouge gras...) J'ai un message d'erreur :
Parse error: parse error in h:\site intranet\drdjs\ajout\affectation_encadrement_club.php on line 10
Tu as oublié le ; a la ligne juste au dessus ;)