$_POST form html --> pop-up (confirm form)

Résolu/Fermé
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 9 juin 2010 à 15:37
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 10 juin 2010 à 15:59
Bonjour à tous,

Je développe un site internet, où l'internaute pourra envoyer un mail à l'administrateur. Je possède donc sur ma page index.php, une page contenant ce formulaire. Après avoir renseigné les champs du formulaire, l'internaute clique sur un bouton "submit" qui lui permettrait de visualiser les informations qu'il a donné.

Cette page, qui permet de visualiser les données à envoyer, je l'ouvre dans une pop-up. Le souci est que je ne comprend pas comment faire pour utiliser la méthode POST dans cette nouvelle page.

Et donc de ce pop-up l'internaute devra être capable de :
--> Confirmer ses informations, auquel cas le mail est envoyé.
--> Annuler dans le cas d'une erreur de saisie et revenir sur la page index.php, tout en ayant conserver ses données préalablement remplies sur le formulaire avant l'apparition du pop-up.

Informations complémentaires : pour cela je dispose de 3 pages ".php"
--> index.php qui contient le formulaire
--> pageconfirm.php qui contient la prévisualisation qui s'ouvre dans une fenêtre pop-up
--> confirmer.php qui contient le code php qui permet l'envoi du mail (aucun affichage si ce n'est un message de confirmation d'envoi du mail géré par un alerte en JS).

En guise d'exemple simple, la page index.php qui contient le formulaire :

<head>
   <script>
     function open_infos()
     {
window.open('pageconfirm.php','verifs','menubar=no, scrollbars=yes, top=100, left=100, width=300, height=200');
      }
   </script>
</head>

<body>
   <form action="index.php" method="POST" name="code" onsubmit="javascript:open_infos();">

      <input type="text" name="txtnom" />
      <input type="submit" value="Prévisualiser" />
 
   </form>
</body>


La page pageconfirm.php (ouvert dans la pop-up)

   <?php 
   echo $_POST['txtnom'];
   ?>




Le fait de mettre donc en action du formulaire pageconfirm.php cela me change la page, ce qui est normal et tout fonctionne, les $_POST etc etc..

Mais en voulant faire apparaître la pageconfirm.php dans une pop-up, je suppose qu'il faille mettre index.php en "action" du formulaire et donc sur un "onsubmit" le JS permettant d'ouvrir pageconfirm.php.

Mais en ouvrant la pop-up, tout les $_POST sont comme remis à zéro. Enfin du moins je n'ai plus les valeurs de mes champs.
C'est ici que vient donc ma question :

Comment faire pour récupérer les informations des champs du formulaire sur la pop-up ?

Merci pour vos réponses.

Necro27
A voir également:

3 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
9 juin 2010 à 17:30
Bonjour,

je n'ai pas directement la réponse, mais en cherchant sur internet j'ai trouvé un endroit ou tu auras peut être ta réponse :

http://www.asp-php.net/...

En espérant que ça t'aide :)
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
Modifié par necro27 le 10/06/2010 à 15:36
Bonjour Defouille, en effet c'est le dernier site que j'ai été voir, avant de poster, et sur les discussions la plupart des internautes recherche la même chose que moi, sans réponse vraiment précise.

Je retourne tout de même dessus, peut-être n'ai-je pas assez bien regardé.

Merci de proposer des solutions, et désolé pour la réponse tardive.

Bonne journée,

Necro27
0
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 8
10 juin 2010 à 15:59
C'est bon, je ne sais pas ce que j'ai vu lorsque j'étais dessus, mais il me semblai que c'était autre chose. Mais cela fonctionne, merci de m'avoir redirigé vers ce site, que je n'aurais certainement pas relu si tu ne me l'avait pas dit.

Encore merci à toi, mais au passage j'aurai juste une modification à faire vis à vis de ce site, qui apparemment utilise une méthode qui n'est plu conseillée.

Pour mieux expliquer, j'illustre donc le code trouvé à l'adresse http://www.asp-php.net/...

<script language="javascript" type="text/javascript">
function pop_it(the_form) {
   my_form = eval(the_form)
   window.open("./wait.php", "popup", "height=440,width=640,menubar='no',toolbar='no',location='no',status='no',scrollbars='no'");
   my_form.target = "popup";
   my_form.submit();
}
</script>

<!-- HTML -->
<form name="chatform" action="./guests.php" method="post">
<p>
Nickname : <input type="text" name="nick" maxlength="32" size="12" value="" /><br />
Password : <input type="password" name="pass" size="12" /><br />
<input type="button" onclick="pop_it(chatform);" value="Tchatter" /></p>
</form>


C'est sur ce qui est en gras que je voudrai apporter une précision, que j'ai bien comprise à force de chercher sur internet divers informations :

donc sur la ligne
<input type="button" onclick="pop_it(chatform);" value="Tchatter" />


Ici il y a un onclick sur le bouton de soumission de formulaire, il paraît donc que cette méthode n'est pas conseillée pour cause que lorsque l'internaute veut valider un formulaire, il le fait la plupart du temps à l'aide du "bouton valider" mais également avec la touche "entrée".
Ici si nous plaçons la fonction js sur un onclick, la touche entrée va en fait bien valider le formulaire mais ne va pas exécuter la fonction js.

La correction à apporter serait donc de mettre, dans la balise form, afin d'appeler la fonction JS, de la mettre dans un onsubmit.

en clair,

<form action="./guests.php" method="POST" name="chatform" onsubmit="javascript:pop_it(chatform);" >


Vualou, c'est ce que j'ai cru comprendre à force de chercher sur le net..Mais mis à part cette "broutille", site très sympathique.
Bonne continuation à toutes et à tous.

Necro27
0