Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1813 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Conserver les données d'un formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Conserver les données d'un formulaire

n°1304474
omsarath
Posté le 13-02-2006 à 16:05:31  profilanswer
 

Bonjour à tous,
 
J'ai un premier formulaire qui renvoie un nom et d'autres renseignements.
Si ce nom existe en double dans la base de données, un second formulaire demande de sélectionner la bonne personne.
 
Je récupère les renseignements du premier formulaire :

Code :
  1. if(isset($_POST["nom"]))
  2.      {
  3.        
  4.          $date   = $_POST["date"];
  5.          $nom    = $_POST["nom"];
  6.          $idPdt  = $_POST["pdt"];
  7.          $qte    = $_POST["qte"];
  8.          $mode   = "ajout";
  9.          idClient($nom, $idConnexion);
  10.      }


La fonction idClient se passe bien, elle récupère l'idClt et exécute correctement la fonction suivante (ajoute) s'il n'y a qu'un nom et elle affiche un second formulaire de choix en cas de doublons de noms.
 
Une fois le choix effectué et récupéré, la fonction ajoute est lancée, qui prend comme paramètres $date, etc du 1er formulaire mais ceux-ci ne sont plus en mémoire :( <= c'est ça le pb !
 
qu'est-ce qui m'échappe ?
 
merci d'avance

mood
Publicité
Posté le 13-02-2006 à 16:05:31  profilanswer
 

n°1304484
omega2
Posté le 13-02-2006 à 16:12:34  profilanswer
 

Ce qui t'échape, ca doit être le fait que les variables existantes au cours d'une demande de fichier au serveur n'existent plus à la demande suivante si on ne les renvois pas à nouveau. (seules exceptions : les variables dites de session et les variables donnant des informations sur le serveur)
En bref, il faut que tu remettes ces informations dans ton second formulaire (<input type=hidden> ) ou que tu stockes les valeurs dans la session.

n°1304490
josserand_​joss
Posté le 13-02-2006 à 16:17:26  profilanswer
 

Salut !
 
Les POST ne sont gardés que pendant un seul changement de page (lors du submit de ton formulaire). Ce qui fait que, lors d'un nouveau changement de page, tu les perds.
 
Dans ton 2ème formulaire, il faut que tu ajoutes toutes tes variables à garder en <input type='hidden' name='nom' value='$nom' />.
 
Sinon, les SESSIONS, mais dans ce cas, ça ne semble pas nécessaire.
 
J'espère être à peu prêt clair.

n°1304535
omsarath
Posté le 13-02-2006 à 16:41:19  profilanswer
 

A vrai dire, je ne comprends pas.  
Mes variables $_POST, je les mets dans des $nom, donc elle sont stockées dans les $nom et plus dans $_POST.  
 
Mais bon ça fonctionne ... je vais tâcher de comprendre.
Merci
 
ps :j'ai édité, j'avais dit des bêtises.


Message édité par omsarath le 13-02-2006 à 16:50:48
n°1304590
josserand_​joss
Posté le 13-02-2006 à 17:25:18  profilanswer
 

non, en gros, quand ton formulaire est validée :
tu récupères tes variables en $_POST (ou $_GET). Pour les réafficher, tu les réintègres dans ton 2è formulaire (où l'utilisateur doit resaisir un autre nom).
Donc, par rapport à ton code, ça devrait donner un truc comme ça :
 

Code :
  1. echo "<form method='POST' action='./validation.php'>\n\n" .
  2. "<input type='hidden' name='date' value='" . $date. "' />\n" .
  3. "<input type='hidden' name='pdt' value='" . $idPdt . "' />\n" .
  4. "<input type='hidden' name='qte' value='" . $qte . "' />\n" .
  5. "<input type='text' name='nom' size='20' />\n" .
  6. "<input type='submit' value='Transmettre un autre fichier' />\n\n" .
  7. "</form>\n\n";

n°1304603
omsarath
Posté le 13-02-2006 à 17:34:08  profilanswer
 

vi, vi, j'ai bien compris ça ... et ça fonctionne, merci encore :)
 
ce que je ne comprends pas, c'est pourquoi dans la mesure ou je récupère les valeurs des variables en $_POST et que je les enregistre dans des variables "normales" elles ne soient pas disponibles après ...
 
De toute façon, je débute complètement, il me manque sûrement des notions de base mais je comprendrai !!
 
a+
 

n°1304643
omega2
Posté le 13-02-2006 à 18:28:10  profilanswer
 

Ca c'est tout simplement par ce que les "variables normales" (pour reprendre ton terme) n'ont comme duré de vie maximale que la durée de l'exécution du script et c'est des variables qui ne sont pas partagé avec les autres pages php ni avec les autres demande de la même page.
 
En fait, une variable existe :
- jusqu'a ce qu'elle subisse une destruction décidé par le programmeur ( unset($var); )
- jusqu'a la fin de l'exécution de la fonction dans laquelle on lui donne une valeur sauf si c'est une variable globale ( global $var; ) auquel cas elle vit jusqu'a sa destruction ou la fin du script
- jusqu'a la destruction de l'objet auquel elle appartient si c'est une variable déclaré dans une classe (programmation objet)
- jusqu'a la fin de l'exécution du script
 
EDIT : correction de francais. :D


Message édité par omega2 le 13-02-2006 à 18:46:03
n°1304645
gatsu35
Blablaté par Harko
Posté le 13-02-2006 à 18:31:00  profilanswer
 

ben c'est comme a dit omega2, les varaibles ne sont que temporaires dans la page, pour les garder disponible, il n'y a que les variables dites de session et les variables donnant des informations sur le serveur

n°1304654
omsarath
Posté le 13-02-2006 à 18:45:28  profilanswer
 

ok !
Merci pour ces éclaircissements, j'avais déjà pu découvrir les variables globales, mais j'avais cru lire quelque part que les variables déclarées dans le script principal étaient globales d'où mon incompréhension.
 
Vais aller potasser ces variables, moi ... ça ira mieux après !
Merci à tous.

n°1304662
omega2
Posté le 13-02-2006 à 18:53:26  profilanswer
 

C'est pas tout à fait ça. Les variables déclarés en dehors de toutes fonctions, de toutes classes et celles déclarés dans une fonction à l'aide du mot clé "global" sont des variables globales.
 
Pour les fichiers inclus à l'aide de "include('fichier.php')" ou "require('fichier.php')", pour savoir si c'est une "variable globale" ou non, il suffit de s'imaginer que le code qu'est dans le fichier est collé à la place de cette fonction (en pratique, c'est ce que fait l'exécuteur php) et de réfléchir comme ci dessus.
 
Par contre, il faut bien comprendre qu'une "variable globale" n'est qu'une "simple variable" qui existe en dehors des fonctions et dans une fonction de l'exécution de "global $var;" jusqu'a la fin de la fonction et que ca n'est pas par ce qu'elle est "globale" qu'elle sera partagé entre les différents scripts.

mood
Publicité
Posté le 13-02-2006 à 18:53:26  profilanswer
 

n°1304706
omsarath
Posté le 13-02-2006 à 19:43:33  profilanswer
 

D'accord, je commence à mieux comprendre ...  
En fait, même en cas de fichier php unique, on ne garde en mémoire que les variables globales résultant de la dernière opération/fonction ou plutôt page ...  
... d'où l'intérêt des variables de sessions
 
Thx omega2.


Message édité par omsarath le 13-02-2006 à 20:13:04

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Conserver les données d'un formulaire

 

Sujets relatifs
afficher les données d'un tableau en stringRequetes sur un site externe et traitement des données
aide pour formulaireremplir in combobox avec des données d'excel
formulaire dans mail qui renvoit un mail[PHP&JAVASCRIPT] Probleme pour recuperer les variables d'un formulaire
envoie résultat d'un formulaire sur liste de contactsFormulaire à choix multiple (PHP/SQL)
formulaire avec mozillaOuvrir une URL en transmettant des données
Plus de sujets relatifs à : Conserver les données d'un formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR