IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire : conserver contenu des champs


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 12
    Points : 13
    Points
    13
    Par défaut Formulaire : conserver contenu des champs
    Bonjour,

    Sur chacun de mes formulaires, je passe par une page de récapitulation des infos entrées avant d'effectivement envoyer ces infos. Sur cette page, j'ai un bouton "Modifier les infos" qui revient sur la page précédente (avec un history.go(-1)).

    Le hic, c'est que parfois, les champs du formulaires sont réinitialisés, parfois les informations rentrées sont conservées. Au début, je pensais que ça dépendait certainement du navigateur mais en fait, ça dépend du formulaire Certains conservent les données, d'autres non. Quelqu'un a une explication ? Et mieux, une soluce ?

    Je viens de penser à un truc : si l'accès à une page est protégé, je suppose qu'il est normal qu'un history.go(-1) sur cette page efface toutes les données précédemment rentrées ?

  2. #2
    Rédacteur

    Avatar de zoom61
    Homme Profil pro
    ...
    Inscrit en
    Janvier 2005
    Messages
    9 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : ...
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2005
    Messages : 9 429
    Points : 58 222
    Points
    58 222
    Billets dans le blog
    11
    Par défaut
    Salut,

    Dans tes formulaires utilises tu la donnée value="...". Elle permet de mettre une valeur à un champ.

    @+.
    N'oubliez pas le Tag afin de faciliter la recherche, et en votant cela permet de mieux la cibler.

    Je ne réponds pas aux messages privés s'ils sont liés à une question technique

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 66
    Points
    66
    Par défaut
    Salut, moi je te conseillerais tout simplement de valider les données sur la meme page que ton formulaire original. Par exemple, si tu as une page index.php avec ton formulaire à remplir par l'utilisateur, fais ton POST sur ce meme fichier, et valide les données dans l'entête du fichier comme suit :

    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
     
    <?php
    //Supposant que tu as un bouton submit ayant le nom "submit"...
    if ($_POST['submit']) {<div style="margin-left:40px">//Tu valide le code ici
    //Tu set une variable te disant s'il y a des erreurs dans les données saisies par l'utilisateur.. par exemple :
    if (!$nom) {<div style="margin-left:40px">$msg = "Entrez un nom<br />";</div>}
     
    if ($msg) {<div style="margin-left:40px">$msg = "Veuillez corriger les erreurs suivantes :<br />";</div>} else {<div style="margin-left:40px"> //Ici, s'il n'y a pas d'erreur, tu passes à la page suivante.. sinon tu réaffiches ton formulaire qui est plus bas dans le code
     
    header("Location: ta_page.php");
    exit();</div>}</div>}
     
    ?>
    <!-- Pour réafficher les données du formulaire, tu fais comme suis.. -->
    <html>
    ...
     
    <?php if ($msg) { ?>
    <span class="error"><?php echo($msg) ?></span>
    <?php } ?>
     
    <input type="text" name="nom" value="<? echo(stripslashes($_POST['nom'])); ?>">
     
    ...
    </html>
    J'espère que ça va régler ton problème !

  4. #4
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Je ne dirais qu'une chose... SESSIONS... .. .

    @ tchaOo°

  5. #5
    Membre régulier
    Avatar de elitemedia
    Profil pro
    Inscrit en
    Août 2006
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 115
    Points : 120
    Points
    120
    Par défaut
    Quelle que soit ta solution, n'utilise pas javascript tant que ton application ne fonctionne pas sans erreur.

    Je veux dire qu'il faut ajouter du JS uniquement pour rendre confortable la navigation ou l'utilisation de ton application, mais d'abord celle-ci doit fonctionner et avoir été testée sans JS.

    J'ajoute également que pour les redirections et renvois de pages, tu ferais mieux d'utiliser la fonction header de PHP avec un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(!headers_sent())
    {
        header('Location: http://www.tonsite.com/tapage.php');
        exit;
    } else {
        include_once('tapage.php');
        exit;
    }
    Votre nom de domaine dès 1,47€ ?
    www.avenuedot.com

Discussions similaires

  1. [AC-2010] Contenu des champs "totaux" du formulaire a disparu !
    Par loïcMX dans le forum Access
    Réponses: 4
    Dernier message: 04/02/2014, 08h52
  2. Réponses: 1
    Dernier message: 18/10/2007, 16h32
  3. Réponses: 2
    Dernier message: 31/05/2007, 11h01
  4. Réponses: 14
    Dernier message: 19/10/2006, 14h23
  5. Réponses: 4
    Dernier message: 22/05/2006, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo