Bonjour tt le monde, voila un petit problème que je rencontre:

J'ai créé un formulaire archi long et le problème est qu'une fois le bouton de validation lancé, lorsque l'utilisateur clique sur le bouton "précédent", il retombe sur la page de formulaire mais tous les chmaps sont réinitialisés. Personellement, lorsque je reviens sur un formulaire, les champs ont encore la valeur que j'avais tapée (mis à part les mot de passe qui s'effacent automatiquement).
Est-ce une option à régler, ou une ruse quelconque, ou dois-je reinsérer un à un les champs en triturant le GET et le POST ???
Salut,

Il me semble bien que c'est géré par le navigateur. Conseille donc a tes utilisateurs d'utiliser Opera (je l'utilise et il fait ça, firefox aussi je crois).

Il est impossible de retrouver ces données autrement que grace qu navigateur lui même puisque le visiteur fait un retour en arriere. Le formulaire n'est pas soumis, les données $_POST ne sont pas disponibles. Les données $_GET non plus, la page est dans le même état que la première fois vide.

Par contre, je suppose que l'utilisateur retourne en arrière parcequ'il n'a pas rempli les champs comme tu le souhaites (non validation du formulaire). Dans ce cas, au lieu de laisse l'utilisateur faire un 'précédent', propose lui un lien/formulaire lui permettant de revenir sur le formulaire prérempli avec les données que tu auras toi-même récupéré lors de la validation.
Bonjour,
___seb a écrit :
Par contre, je suppose que l'utilisateur retourne en arrière parcequ'il n'a pas rempli les champs comme tu le souhaites (non validation du formulaire). Dans ce cas, au lieu de laisse l'utilisateur faire un 'précédent', propose lui un lien/formulaire lui permettant de revenir sur le formulaire prérempli avec les données que tu auras toi-même récupéré lors de la validation.
Ou tout simplement réafficher le formulaire en cas d'erreur. Smiley smile
ouaip, c'est ce que je voulais dire, en y incluant les données déjà saisies lors de la précédente validation. Smiley cligne
Eh bien en fait, je voudrais proposer la modification des champs, donc forcément un retour au questionnaire. Le problème est que j'ai une centaine de champs, donc va falloir changer les "value="" de tous ces champs. Coool.
Moi j'ai trouvé une solution en javascript pour retourner en arrière avec champ rempli.
<a href='javascript:history.go(-1)'>Retour au formulaire</a>

Dit moi ce que tu en pense.
Une petite aide ?

Pour éviter de perdre le contenu

<label for="login">Login :</label>
<input type="text" id="login" name="login" size="50" [#red]<?if(!empty($_POST['login'])){?>[/#]value="[#red]<?=$_POST['login']?>[/#]"[#red]<?}?>[/#] />


Si le contenu du champ envoyer par methode POST n'est pas vide, alors je rempli l'attribut "value" par le contenu du champ envoyé.

Pour faire une passe de vérification pour savoir si le champs à bien été remplis

[#red]<?if(empty($_POST['login']) && !empty($_POST['envoie'])){?>[/#]
<p>Vous n'avez pas saisi votre Login !</p>
[#red]<?}?>[/#]


Si le contenu du champ envoyer par methode POST est vide et que le formulaire à bien été envoyé (variable non vide 'envoie'), alors j'ecris que le champs n'a pas été remplis.


Pour le $_POST['envoie'] c'est juste une champ caché :

<input type="hidden" name="envoie" value="envoie" />

Modifié par Super_baloo8 (13 Jan 2007 - 01:45)
Si c'est un formulaire envoyé en POST, essaye d'utiliser un header '303 See Other' qui redirigerait vers la page suivante (conformément au protocole HTTP), en faisant précédent chez moi les champs avait toujours leur valeur
Nan en fait ça doit venir d'ailleurs, tous les tests que j'ai fait réaffichent les données saisies du formulaire. Il faudrait voir les headers HTTP transmis par le serveur, genre avec Fiddler