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

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu] variable garde sa valeur d'une page à une autre ? possible ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] variable garde sa valeur d'une page à une autre ? possible ?

n°804465
dawei38
Posté le 23-07-2004 à 14:37:27  profilanswer
 

Voilà, je débarque un peu dans le PHP (2-3 jours), j'ai fait un peu de C++ il y a qques mois, mais là j'ai un boulot à faire en PHP. Le principe est le suivant dans les grandes lignes :  
 
A partir d'une page écrite en html, je dois populariser une base de donnée SQL : 1ère étape
 
Ensuite, je dois pouvoir récupérer les données enregistrées, en gros faire des requêtes SQL.  
 
J'utilise le PHP intégré à l'HTML pour traiter les champs "input", traiter les variables et envoyer mes requêtes à mon SQL server.
 
Déjà résolu pas mal de petits problèmes, le suivant est :  
 
 - Je voudrais remplir un tableau, mais l'utilisateur ne sait pas combien d'entrées il aura à mettre... J'ai donc créé un champ d'entrée sur une page indépendante. L'utilisateur rempli le champ, clique sur le bouton et php entre la valeur du champ ds un tableau. la page se recharge car le form fait appel à cette meme page et l utilisateur peut à nouveau remplir le champ et l'envoyer ds la cellule suivante de mon tableau. Pour changer de cellule, me faut un compteur ($j). initialisé à zero lors de la premiere arrivée sur la page (si la fonction isset() renvoie false-->la variable $_POST[blabla] n'a pas encore été attribuée. ensuite il devrait rajouter 1 à ce compteur car la isset($POST[blabla]) renvoie thrue. tout semble marcher correctement mis à part qu'à chaque "reload" de la feuille, $j est re-créé et perd donc sa valeur. J'avais pensé fixer cette valeur en l'initialisant ailleurs, mais comment garantir que cette page ne sera pas elle même reloaded... Je pensais envoyer la valeur à une autre page, avant le reload, et la récupérer juste après... Est ce possible ??? y a t il un autre moyen magique, est ce que je cherche trop loin ??? Toute aide sera la bienvenue.
 
Voilà le code pour cette page (db_table_used_add.php) :
 
<html>
  <head>
  </head>
  <body>
    <?php
     include 'functions.php';  
     if (isset($_POST[db]))
       {
         $j++;
       }  
     else
       {
         $j=0;
       }  
    ?>
   
    <form method=post action=db_table_used_add.php>  
    <input type="text" name="db" size="134"><br>
    <input type="submit" value="Add"><br>
     
    <?php
      for ($i=0; $i<$j; $i++)
        {
          $tab[$i]=$_POST[db];
        }    
     
    ?>
  </body>
 
</html>


Message édité par dawei38 le 26-07-2004 à 11:44:53
mood
Publicité
Posté le 23-07-2004 à 14:37:27  profilanswer
 

n°804483
Xav_
The only one...
Posté le 23-07-2004 à 14:44:20  profilanswer
 

<form method=post action=db_table_used_add.php?j=<?php echo $j; ?>>
tu peux tester $j dans ta page d'arrivée, elle aura la valeur envoyée... (que te page d'arrivé soit celle d'appel comme ici, ou une autre)


Message édité par Xav_ le 23-07-2004 à 14:45:21

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°804515
dawei38
Posté le 23-07-2004 à 14:56:11  profilanswer
 

J'essaie ça de suite, merci bcp !

n°804680
dawei38
Posté le 23-07-2004 à 16:03:56  profilanswer
 

Voilà j'ai réessayé en mettant des echo pour connaître la valeur de i et j à chaque moment. J'ai tooujours le même problème:
   - Au premier chargement de la page, le formulaire n'ayant jamais été utilisé, $_POST[db] n'est pas assigné et isset($_POST[db]) doit bien renvoyer false et donc mise à 0 de j passage dans le false de la condition if()---> affichage de $j = 0 lors du débugage $j est bien initialisé à 0 si form n'a jamais été utilisé :OK !!
 
  - je rempli le champ, clique sur submit, le form est envoyé, $_POST[db] est initialisé et je recharge la meme page en espérant que $i garde sa valeur : 0 pour pouvoir être incrémentée. Comme j'ai déjà utilisé le form isset($_POST[db]) vaut 1 et je passe dans la partie thrue du if() qui doit m'incrémenter mon $j. J'y passe bien, car je l'affiche pour débugger, mais la valeur de $j avant l'incrémentation (devrait être 0) est "vide", je suppose donc "non initialisée". Après l'incrémentation, passe à 1, je suppose que $i non initialisé à été considéré comme à 0.
 
 --> coup suivant, j'espère passer dans la partie thrue du if (ça c'est ok) et donc incrémenter mon $j qui vaut 1, mais à nouveau, il vaut "vide", donc entre chaque reload, il ne garde tjs pas sa valeur...
 
voilà le code:  
 
<html>
  <head>
  </head>
  <body>
    <?php
       
      if (isset($_POST[db]))
        {
          echo "isset thrue";echo "<br />\n";
          echo "$ j avant ++ : ";
          echo $j;echo "<br />\n";
          $j++;
          echo "$ j après ++ : ";
          echo $j;echo "<br />\n";
        }  
      else
        {
          echo "isset false";echo "<br />\n";
          $j=0;
          echo "$ j : ";
          echo $j;echo "<br />\n";
        }  
       
      for ($i=0; $i<$j; $i++)
        {
          $tab[$i]=$_POST[db];
          echo "$ tab[i] : ";
          echo $tab[i];echo "<br />\n";
          echo "$ i : ";
          echo $i;echo "<br />\n";
          echo "$ j : ";
          echo $j;echo "<br />\n";
        }    
    ?>
    <form method=post action=db_table_used_add.php?j=<?php echo $j; ?>>  
    <input type="text" name="db" size="134"><br>
    <input type="submit" value="Add"><br>
  </body>
</html>
 
 
J'ai aussi essayé dans la déclaration du form de mettre un $ avant le j...
 
<form method=post action=db_table_used_add.php?$j=<?php echo $j; ?>>  
 
Merci du coup de patte !!!
 
Bonne journée !

n°804709
mathix
mathix@jabber.org
Posté le 23-07-2004 à 16:25:21  profilanswer
 

si tu envoye ton formulaire comme ca, tu récupère la valeur de j dans $_GET['j']

n°804743
jagstang
Pa Capona ಠ_ಠ
Posté le 23-07-2004 à 16:39:13  profilanswer
 

mathix a écrit :

si tu envoye ton formulaire comme ca, tu récupère la valeur de j dans $_GET['j']


 :pfff:  
 
<form method=post action=db_table_used_add.php?$j=<?php echo $j; ?>>  
 


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°804748
dawei38
Posté le 23-07-2004 à 16:42:42  profilanswer
 

J'essaie... merci !

n°804792
mathix
mathix@jabber.org
Posté le 23-07-2004 à 17:11:52  profilanswer
 

JagStang a écrit :

:pfff:  
 
<form method=post action=db_table_used_add.php?$j=<?php echo $j; ?>>


la variable "db" est passé par "post" mais la variable "j" est passée par "get"


---------------
mathix@jabber.org
n°804797
jagstang
Pa Capona ಠ_ಠ
Posté le 23-07-2004 à 17:15:10  profilanswer
 

super. aucune utilité. c'est codé à la joce [:joce]


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
n°805582
Lex
Posté le 25-07-2004 à 02:05:27  profilanswer
 

le mieux est de mettre da,s le formulaire un champ "hidden" qui s'appelle "j" et qui sera alors passé en POST. C'ets plus propre :o

mood
Publicité
Posté le 25-07-2004 à 02:05:27  profilanswer
 

n°805685
Clapsou
Posté le 25-07-2004 à 13:50:34  profilanswer
 

Lex a écrit :

le mieux est de mettre da,s le formulaire un champ "hidden" qui s'appelle "j" et qui sera alors passé en POST. C'ets plus propre :o


C'est clair je vois pas pourquoi vous vous prenez la tête, dans le formulaire tu met un :
 
<input type=hidden name=j value="<? echo $j ?>">
 
et le tour est joué

n°805688
Ayuget
R.oger
Posté le 25-07-2004 à 14:08:57  profilanswer
 

et mettez des quotes, marre du code de porc :o

n°805926
dawei38
Posté le 25-07-2004 à 23:13:16  profilanswer
 

merci bcp à tous, ça marche !!


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

  [Résolu] variable garde sa valeur d'une page à une autre ? possible ?

 

Sujets relatifs
[PHP 4.0.6] Pb php 4.0.6 et envoi mail [RESOLU]fonction int86 [resolu]
introduction d une servlet dans une page html[VBA ACCESS] recherche d'apostrophe dans une string [RESOLU]
[Résolu]Templates imbriquéscss IE, FF et mise en page
Utilisation de variable dans lien pour paramétrer un objet[résolu]récupérer une valeur stockée dans session en javascript
[Resolu] [RegExp] récuperer une chaine encadrée par 2 balises 
Plus de sujets relatifs à : [Résolu] variable garde sa valeur d'une page à une autre ? possible ?


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