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

  FORUM HardWare.fr
  Programmation
  PHP

  PB : Transfert de variable de formulaire vers une autre page

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

PB : Transfert de variable de formulaire vers une autre page

n°1681876
Abyss 83
inspirations nocturnes
Posté le 05-02-2008 à 11:18:58  profilanswer
 

Bonjour,  
 
Voici mon problème :
 
J'ai créée une fiche d'intervention dans laquelle s'affiche automatiquement les infos client dans un premier temps,  
puis la saisie d'un formulaire dans lequel on doit remplir les champs correspondants à l'intervention.
Suite à celà, un bouton "Valider" qui va enregistrer les données dans la BDD.
Jusque là, tout est OK.
 
Le soucis vient quand je créé un second formulaire sur la même page avec un bouton "Apperçu avant Impression" qui va afficher sur une autre page (print.php) la version imprimable du formulaire avec le transfert de variable du premier formulaire.  
Or les variables du 2nd formulaire ne sont pas transférées vers print.php, sachant que je n'utilise pas de base de donnée pour cette manip.
 
J'ai procédé de la façon suivante :
 
"fiche_interv.php"

Code :
  1. <form name="formintv" method="post" action="insererIntv.php" onSubmit="return(verif_intv(formintv));">
  2. <?php include("6-InfoSoc.php" )
  3.          include("7-NoIntv.php" ); ?>
  4. <input name="NoIntv" type="hidden" value="<?php echo $NoIntv ?>" >
  5. <?php $IntvDate = date('d/m/Y');
  6. echo $IntvDate; ?>
  7. <input name="IntvDate" type="hidden" value="<?php echo $IntvDate ?>" >
  8. <input name="IntvDateEdit" type="text" id="IntvDateEdit" size="12" maxlength="10">
  9. <input name="IntvHDeb" type="text" size="2" maxlength="2">heures
  10. <input name="IntvMinDeb" type="text" size="2" maxlength="2">
  11. <input name="IntvHFin" type="text" size="2" maxlength="2">heures
  12. <input name="IntvMinFin" type="text" size="2" maxlength="2">
  13. <input name="IntvObjet" type="text" size="60" maxlength="50">
  14. <textarea name="IntvObsv" cols=90 rows=10 wrap="soft" id="IntvObsv"></textarea>
  15. <input name="IntvMatInst" type="text" size="100" maxlength="85">
  16. <input name="submit" type="submit" value="Valider l'intervention">
  17. <?php
  18. //TRANSFERT DES VALEURS DU FORMULAIRE DANS LES VARIABLES CORRESPONDANTES POUR ENSUITE TRANSFERER CES VARIABLES DANS LE 2ND FORMULAIRE QUI LES ENVERRA VERS "print.php" .
  19.    //réccupérer la variable date du jour ou date modifiée :
  20.       if ($_POST['IntvDateEdit'] == '') {
  21.       $IntvDate = $_POST['IntvDate'];
  22.       }
  23.       else {
  24.       $IntvDate = $_POST['IntvDateEdit'];
  25.       }
  26.       //transférer les variables avant de les envoyer vers une autre page :
  27.       $IntvHDeb = $_POST['IntvHDeb']."h".$_POST['IntvMinDeb'];
  28.       $IntvHFin = $_POST['IntvHFin']."h".$_POST['IntvMinFin'];
  29.       $IntvObjet = $_POST['IntvObjet'];
  30.       $IntvObsv = $_POST['IntvObsv'];
  31.       $IntvMatInst = $_POST['IntvMatInst'];
  32. ?>
  33.   
  34. </form>
  35. //FORMULAIRE D'ENVOI VERS "print.php" :
  36. <form action=<?php echo "print.php?NoIntv=$NoIntv&IntvDate=$IntvDate&IntvHDeb=$IntvHDeb&IntvHFin=$IntvHFin&IntvObjet=$IntvObjet&IntvObsv=$IntvObsv&IntvMatInst=$IntvMatInst"; ?> method="post" target="_blank">
  37. <input type="hidden" name="NomSoc" value="<?php echo $NomSoc; ?>"/> 
  38. <input type="submit" name="print" value="Aperçu avant impression">
  39. </form>


 
"print.php" (affichage des variables récupérées dans le lien du formulaire) :

Code :
  1. <?php
  2.   //Afficher les infos de l'intervention :
  3.   echo "<table width='95%' align='right' border='0' cellspacing='0' cellpadding='2' class='infoBox'>";
  4.   echo "<tr><td width='15%' valign='top' class='infoBox'>N°intervention :</td>";
  5.   echo "<td>".$NoIntv."</td></tr>";
  6.   echo "<tr><td width='15%' valign='top' class='infoBox'>Date :</td>";
  7.   echo "<td>".$IntvDate."</td></tr>";
  8.   echo "<tr><td class='infoBox'>Heure de début :</td>";
  9.   echo "<td>".$IntvHDeb."</td></tr>";
  10.   echo "<tr><td class='infoBox'>Heure de fin :</td>";
  11.   echo "<td>".$IntvHFin."</td></tr>";
  12.   echo "<tr><td class='infoBox'>Objet :</td>";
  13.   echo "<td>".$IntvObjet."</td></tr>";
  14.   echo "<tr><td class='infoBox'>Observation :</td>";
  15.   echo "<td>".$IntvObsv."</td></tr>";
  16.   echo "<tr><td class='infoBox'>Matériel installé en plus :</td>";
  17.   echo "<td>".$IntvMatInst."</td></tr></table>";
  18. ?>


 
PROBLEME : Les variables ne s'affichent pas hormis le N° d'intervention qui est déjà une variable dans fiche_interv.php.
 
Bon c'est un peu long mais j'ai essayé de condenser le code et d'aller à l'essentiel ! ;)  
 
Dans tout les cas je vous remercie d'avance pour votre aide, en espérant avoir été assez clair dans mes propos...
J'espère ainsi recevoir vos lumières sur ce problème...
A+


---------------
http://suruguecreation.free.fr - Conception multimédia 3D
mood
Publicité
Posté le 05-02-2008 à 11:18:58  profilanswer
 

n°1681888
skeye
Posté le 05-02-2008 à 11:37:50  profilanswer
 

euh, et qu'est-ce qui t'étonne? :??:


---------------
Can't buy what I want because it's free -
n°1681989
Abyss 83
inspirations nocturnes
Posté le 05-02-2008 à 14:32:46  profilanswer
 

Le problème est que je n'arrive pas à faire afficher les variables dans print.php. :/
 
Pourtant, je pense avoir effectué logiquement les manip suivantes :
 
- Transfert des noms de champs du 1er formulaire dans des variables avec $_POST['nomchamps']
- Transfert des variables utilisées dans le 2nd formulaire, à la suite du lien "print.php?noIntv=$noIntv&...", vers "print.php".
- Affichage en php des variables dans print.php avec des "echo".
 
Où est l'erreur ? :??:  
 
Merci d'avance pour votre aide.


---------------
http://suruguecreation.free.fr - Conception multimédia 3D
n°1682082
CyberDenix
Posté le 05-02-2008 à 16:12:26  profilanswer
 

Si j'ai bien compris tu fais :
 
page1 ---[POST]---> page2 ---[GET]---> page3
 
Donc dans ta 3ème page il faut que tu utilises $_GET['NoIntv'] à la place de $NoIntv.


---------------
Directeur Technique (CTO)
n°1682620
Abyss 83
inspirations nocturnes
Posté le 06-02-2008 à 11:43:16  profilanswer
 

Non en réalité il n'y a que 2 pages :
 
page1/formulaire1 ---[POST]--->page1/formulaire2 ---"print.php?NoIntv=$NoIntv&..."---> page2 (affichage des variables)
 
 
Mais je me suis rendu compte d'une chose, c'est que ce n'est pas faisable, dans la mesure où les champs saisis dans le formulaire1 ne sont pas transférés vers le formulaire2 puisque la page n'est pas rafraîchie !
 
En réalité, seule les variables qui s'affichent automatiquement avec la page seront transférées : infos clients et NoIntv.
 
cependant, il y aurait une solution avec du javascript, mais je préfère éviter, étant donné qu'il est parfois mal interprêté par certains navigateurs...


---------------
http://suruguecreation.free.fr - Conception multimédia 3D
n°1682625
omega2
Posté le 06-02-2008 à 11:56:12  profilanswer
 

Pourquoi ne pas faire un seul formulaire avec un bouton "valider" et un bouton "prévisualiser" et réagir différemment en fonction du bouton cliqué?
Vu que le nom du bouton cliqué (associé au texte du bouton) est envoyé avec le reste du formulaire on peut savoir facilement si l'utilisateur a cliqué sur tel ou tel bouton et même s'il a envoyé le formulaire sans cliquer sur un bouton (en appuyant par exemple sur la touche "entrée" du clavier)

n°1682631
babasss
Posté le 06-02-2008 à 12:02:49  profilanswer
 

Omega2 : Juste pour ma culture, tu fais comment dans ce cas précis, tu donnes le même nom aux deux boutons avec des valeurs différentes :

Code :
  1. <input name="bouton" type="submit" value="Valider l'intervention">
  2. <input name="bouton" type="submit" value="Apercu avant impression">


et tu récupères la valeur du bouton via le code : $_POST['bouton'] ?


Message édité par babasss le 06-02-2008 à 12:03:42

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1682635
omega2
Posté le 06-02-2008 à 12:15:29  profilanswer
 

Je donnes toujours des noms différents aux boutons : le texte n'est pas fiable puisqu'on peut très bien vouloir le modifier au bout de x temps pour corriger une faute d'orthographe, utiliser un terme différent ou même pour traduire une partie du site.

n°1682805
Abyss 83
inspirations nocturnes
Posté le 06-02-2008 à 16:15:08  profilanswer
 

J'ai effectivement essayé cette option omega, mais que faut-il mettre comme lien dans le <form action=""> ?
 
Le lien du bouton 1 ou celui du bouton 2 ?  :??:


---------------
http://suruguecreation.free.fr - Conception multimédia 3D
n°1682814
babasss
Posté le 06-02-2008 à 16:23:58  profilanswer
 

Il faut que tes deux boutons renvoient vers la même page. A toi ensuite dans ta page de réorienter ton script suivant le bouton cliqué.


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
mood
Publicité
Posté le 06-02-2008 à 16:23:58  profilanswer
 

n°1683107
Abyss 83
inspirations nocturnes
Posté le 07-02-2008 à 09:18:02  profilanswer
 

Ok merci babass pour l'info ! ;)


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

  PB : Transfert de variable de formulaire vers une autre page

 

Sujets relatifs
quelle page appele ma fonctionSuppréssion de blanc dans une variable
Formulaire PHP pour insérer dans BDDchanger les lien d'une page coté client
problème avec un formulaire : champ non définiRedirection d'une commande vers un fichier
les elements de ma page n apparaissent pas de la meme facon partt :s[Resolu] Compter nombre de page dans un book
[PHP] Arguments vers Variable 
Plus de sujets relatifs à : PB : Transfert de variable de formulaire vers une autre page


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