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 :

Mémorisation des informations données par l'utilisateur + rafraichissement page


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut Mémorisation des informations données par l'utilisateur + rafraichissement page
    Bonsoir,

    Je ne sais pas comment utiliser l'élément hidden. Je souhaiterais que les utilisateurs n'aient pas à re-rentrer leurs coordonnées lorsqu'ils rafraîchissent la page.

    Je pensais qu'il fallait ajouter un élément hidden pour chaque variable, mais créant un champs hidden sslt pour la 1ère variable et après rafraichissement de la page, je me rends compte que les valeurs de toutes les variables me sont retournées ...

    Voici le code

    Et un grand merci d'avance,

    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
     
     
    ...
    <?
    if (isset($_POST['nom']) && isset($_POST['prenom']))
    {
    echo $_POST['nom'];  
    echo $_POST['prenom'];
    }
    ?>
    ...
     
    <form name="petition" method="post" action="petition.php">
     
    <table border=0>
     
    <!-- Gestion du nom : -->
    <?
    // Teste que le champs n'est pas vide ou égal à 0
    // et que l'utilisateur a déjà appuyé sur le bouton Envoyer pour éviter ainsi l'affichage du message d'erreur  
    if ( empty($_POST['nom']) && isset($_POST['envoyerDonnees']) )
    {
    echo "<font color='#FF0000'> Le nom doit être rempli : </font><br><br>";
    }    
    ?>  
    <tr>      
    <td> Nom :  
    </td>
    <td><input type="text" name="nom" size="40">
    <!--Mémorisation de la valeur pour prévision rafraichissement de la page -->
    <input type="hidden" name="memorisationNom" value="<? if (isset($_POST['nom'])) {echo $_POST['nom'];} ?>" >
    </td>
    </tr>
     
    <!-- Gestion du prénom : -->
    ....
     
    <tr>
    <td>
    </td>
    <td><input type="submit" name="envoyerDonnees" value="Envoyer">
    <input type="reset" name="effacer" value="Effacer">
    </td>
    </tr>
    </table>
    </form>

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Si tu entends par rafrachissement lorsqu'ils font f5 par exemple, ce n'est pas possible en php. En effet, sur un formulaire vide que tu commences à remplir, si tu fais f5 à ce moment là, aucune donnée n'est envoyé au serveur, et donc il n'est pas possible de les récupérer.

    Maintenant, si ce que tu veux faire c'est que lorsqu'il y a une erreur lors de la validation du formulaire, c'est de réafficher ce que l'utilsateur a saisi, il te faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="nom" size="40" value="<?php echo $_POST['nom'];?>">
    et idem pour le prénom.

    En fait, dans ton cas, les champs hidden te sont inutile, on s'en sert généralement pour passer des variables qui n'ont pas à etre saisi par l'utilisateur.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Ah mais c'est trop ça!
    J'avais commencé par le code que tu m'avais donné. En lançant le script via la navigateur, j'avais aucune retour de données lorsque je revenais en arrière sur le navigateur.
    Hier soir après ton post, je re-essaie et ça marche.

    Cette semaine j'ai déjà eu le même problème (cf voir mon autre post sur le forum). Script qui marche pas. Le lendemain je relance le script. Miracle ça marche.



    c'est vraiment curieux.

    Menfin, merci quand même

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par lou64 Voir le message
    Cette semaine j'ai déjà eu le même problème (cf voir mon autre post sur le forum). Script qui marche pas. Le lendemain je relance le script. Miracle ça marche.
    ça fait partie des lois de l'informaticien pour les miracles prévoir un délai

    L'essentiel, c'est que ça marche

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    Par contre deux problèmes :

    1. Lorsque je valide le formulaire (donc avant retour en arrière), la valeur rentrée dans le champs "nom" apparaît de nouveau dans le formulaire.

    2. Le code du champs "nom" est :

    <tr>
    <td> Nom :
    </td>
    <td><input type="text" name="nom" size="40" value="<? echo $_POST['nom']; ?>">
    </td>
    </tr>
    et lorsque je valide le formulaire et que je reviens en arrière, j'obtiens les valeurs dans le champs "nom" (normal) mais aussi dans le champs "prenom" alors que je n'ai rien codé pour ce champs pour l'instant.

  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je pense que ce deuxieme affichage est du au navigateur , mais je ne suis pas sûr.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 58
    Points : 40
    Points
    40
    Par défaut
    J'utilise firefox 2

    Et le pb est le même avec IE

Discussions similaires

  1. calculer des variables données par l'utilisateur
    Par ditch935f dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 19/03/2010, 13h31
  2. Filtrer une Listbox en fonction d'informations saisies par l'utilisateur
    Par navorinco dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/05/2009, 17h30
  3. Réponses: 1
    Dernier message: 30/11/2008, 10h27
  4. [Débutant] Création d'une fenêtre de saisie de données par l'utilisateur
    Par Alucard9800XT dans le forum Interfaces Graphiques
    Réponses: 5
    Dernier message: 13/04/2007, 22h38

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