Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 22h47   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
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 :
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>
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 22h53   #2
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
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 :
<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.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 09h05   #3
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
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
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 09h09   #4
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 686
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

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

Informations forums :
Inscription : avril 2007
Messages : 3 686
Points : 5 451
Points : 5 451
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
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 09h25   #5
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
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 :

Citation:
<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.
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 09h32   #6
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Je pense que ce deuxieme affichage est du au navigateur , mais je ne suis pas sûr.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 11h13   #7
Candidat au titre de Membre du Club
 
Inscription : novembre 2006
Messages : 58
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 58
Points : 11
Points : 11
J'utilise firefox 2

Et le pb est le même avec IE
lou64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h49.


 
 
 
 
Partenaires

Hébergement Web