Envoyé par
navona
merci pour cette reponse, et je ne peux t'assurer de rien car je suis novice en php, mais j'avais commencé avec des POST et actuellement, sans les POST, j'arrive a afficher apres la validation des champs d'un questionnaire, ses valeurs dans la page suivante! (c'est anormal???
)
Personnellement, cela me surprend, ou j'ai mal compris
Envoyé par
navona
le probleme que j'ai, le meme que lorsque j'avais les POST, c'est lorsque l'utilisateur choisi 3 questionnaires par exemple, le n°1, le n°2 et le n°4.
Je memorise ces choix que j'envoie dans ma deuxieme page, la page questionnaire.php
comment, sans POST, fais-tu pour mémoriser ces choix et les transférer de ta page de choix (index.php) vers ta page de traitement (questionnaire.php) ? (peut-être que selon les versions de php le POST n'est pas obligatoire, mais il me semble plus logique de l'utiliser)
Envoyé par
navona
dans cette page, je teste pour savoir ce qu'il y a comme choix de questionnaire et j'affiche alors les champs du questionnaire 1 (questionnaire.php) dans la page questionnaire.php grace a un include.
compris
Envoyé par
navona
mais comme je souhaitais mettre a chaque fois mes feuilles questionnaire$
i avec un include dans questionnaire.php, j'ai mis un code dans questionnaire.php pour attribuer les valeurs des champs des questionnaires dans les variables de session, et ce, pour tous les questionnaires.
je suppose que c'est le code suivant :
1 2 3 4 5
| <?
for($i=1;$i<=5;$i++){
$_SESSION["questionnaire".$i]=${questionnaire.$i};
}
?> |
et c'est la que j'attendais un POST
Envoyé par
navona
je recupere les valeurs des champs du questionnaire1 et je les mets dans les variables de session du questionnaire1 mais en plus, je fais pareil avec les variables du questionnaire2, du 3, ...du 5, puisqu'il s'agit d'une page "générique".
je suppose qu'il s'agit du code suivant, ou j'attendais également des POST
1 2 3 4 5 6
| <?
for($i=1;$i<=15;$i++){
for($j=1;$j<=4;$j++){
$_SESSION["questionnaire1_".$i."_".$j]=${questionnaire1_.$i._.$j};
}
} |
Envoyé par
navona
ainsi, les variables correspondant au questionnaire2 sont remplies mais forcement, puisque l'utilisateur vient de saisir les donnees du questionnaire2, j'attribue des valeurs nulles aux variables des autres questionnaires, notamment aux variables du questionnaire1 qui etaient remplies avant!
je crois que mon probleme est la
oui effectivement, la, tu les perds.
dans le code de l'include, tu vides correctement la variable $_SESSION["questionnaire1"]. cependant, dans ta page questionnaire.php, tu n'en tiens pas suffisemment compte :effectivement, tu ne réaffiches pas le questionnaire1
par contre, tu réinitialises les valeurs de ce qustionnaire. pourquoi ne pas faire également un if sur l'attribution des variables du questionnaire 1, par exemple
1 2 3 4 5 6
| if(!empty($_SESSION["questionnaire1"])){
for($i=1;$i<=15;$i++){
for($j=1;$j<=4;$j++){
$_SESSION["questionnaire1_".$i."_".$j]=${questionnaire1_.$i._.$j};
}
} |
avec la même remarque précédente, je m'attends à y voir un POST
Tu peux également, dans tes scripts include, afficher les valeurs qui ont été remplie auparavant par ton client, avec checked, selected etc en fonction de type d'entrée. mais cela n'a pas d'intérêt si tu masques le formulaire dès qu'il est validé.
Partager