Page 1 sur 2

Données non transmises

Posté : 23 mai 2005, 09:45
par Break
Bonjour à tous.

Voilà, mon problème est que les données ne sont pas transmises, seules les variables aparaissent telles que "$nomcli". Je ne trouve pas mon erreur. Merci de votre aide.


Formulaire

Code : Tout sélectionner

<html> <head> <SCRIPT LANGUAGE="javascript"> function verif_infos(){ champ1=document.formulaire.nomcli.value champ2=document.formulaire.prenomcli.value champ3=document.formulaire.ruecli.value champ4=document.formulaire.CPcli.value champ5=document.formulaire.villecli.value if((champ1.length<1)||(champ2.length<1)||(champ3.length<1)||(champ4.length<1)||(champ5.length<1)) { alert ('Veuillez renseigner les champs obligatoires !'); } else { document.formulaire.submit(); } } </SCRIPT> </head> <title>Formulaire d'inscription</title> <body> <img src="logo.jpg"> <center> <h1><strong>Formulaire d'inscription</strong></h1> <strong>Afin de pouvoir profiter de nos services, veuillez remplir le formulaire ci-dessous.</strong> <br><br> <form action="infos.php" method="post" name="formulaire"> Nom : <input type="text" name="nomcli" size="12"> Prénom : <input type="text" name="prenomcli" size="12"><br><br> Adresse : <input type="text" name="ruecli" size="45"><br><br> Code Postal : <input type="int" name="CPcli" size="4"> Ville : <input type="text" name="villecli" size="12"><br><br> Mode de paiement : <input type="radio" name="mode_pay" value="cb" checked>Carte Bancaire <input type="radio" name="mode_pay" value="chq">Chèque <br><br><br> <input type="button" value="Valider" onClick="verif_infos()"> <input type="reset" value="Annuler"> </form> </center> </body> </html>
Affichages des données

Code : Tout sélectionner

<html> <head> <title>Confirmation de l'inscription</title> <script language="javascript"> <!-- function recap() { window.open("recap.php", "recap", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50"); } //--> </script> </head> <body> <img src="logo.jpg"> <center><h1><strong>Confirmation de l'inscription</strong></h1> <strong>Merci de vous être inscrit(e) à notre offre !</strong> <br> <strong>Il est recommandé d'imprimer les informations suivantes afin d'avoir un support en cas de réclamation.</strong> <br> <br> <br> <?php $nomcli = $_POST['nomcli']; $prenomcli = $_POST['prenomcli']; $ruecli = $_POST['ruecli']; $CPcli = $_POST['CPcli']; $villecli = $_POST['villecli']; $mode_pay = $_POST['mode_pay']; $connexion = mysql_pconnect("localhost", "root", "") or die("erreur"); mysql_select_db("bd_site", $connexion) or die ("échec"); $reqSQL="INSERT INTO client (nomcli, prenomcli, ruecli, CPcli, villecli, mode_pay) VALUES ('$nomcli', '$prenomcli', '$ruecli', '$CPcli', '$villecli', '$mode_pay')"; mysql_query($reqSQL, $connexion); mysql_close($connexion); ?> <form action="recap.php" method="post"> <input type="button" value="Imprimer le récapitulatif" onclick="recap()"> <input type="hidden" value="$nomcli" name="nomcli"> <input type="hidden" value="$prenomcli" name="prenomcli"> <input type="hidden" value="$ruecli" name="ruecli"> <input type="hidden" value="$CPcli" name="CPcli"> <input type="hidden" value="$villecli" name="villecli"> <input type="hidden" value="$mode_pay" name="mode_pay"> </form> <? print("<br><br><strong>Nom :</strong> $nomcli <strong>Prénom :</strong> $prenomcli"); print("<br><strong>Adresse :</strong> $ruecli $CPcli $villecli"); print("<br><strong>Mode de paiement :</strong> $mode_pay"); ?> <br><br><br> <Table Border=0> <form method="post" action="valid_infos.php"> <input type="submit" value="Valider"> </form> <form method="post" action="http://dr-bug.com/"> <input type="submit" value="Accueil"> </form> </table> </center> </body> </html>
Fenêtre d'impression des données, [color = red] C'est là que les données ne s'affichent pas[/color]

Code : Tout sélectionner

<html> <head> <title>Récapitulatif</title> </head> <body> <center> <img src="logo.jpg"> <?php $nomcli = $_POST['nomcli']; $prenomcli = $_POST['prenomcli']; $ruecli = $_POST['ruecli']; $CPcli = $_POST['CPcli']; $villecli = $_POST['villecli']; $mode_pay=$_POST['mode_pay']; ?> <table cellspacing='15'> <tr> <td colspan='3'> <?php print ("<td><strong>Nom :</strong> $nomcli</td>"); print ("<td><strong>Prénom :</strong> $prenomcli</td>"); print ("<td><strong>Adresse :</strong> $ruecli"); print (" $CPcli "); print ("$villecli</td>"); print ("<td><strong>Mode de Paiement :</strong> $mode_pay</td>"); ?> </td> <tr> </table> <form> <input type="button" value="Imprimer" onclick="window.print()"> </form> </center> </body> </html>
Voici le type d'erreur :
Notice: Undefined index: nomcli in c:\program files\easyphp1-8\www\recap.php on line 12
Merci d'avance pour votre aide ...

Break.

Posté : 23 mai 2005, 09:48
par pjl
Commence déjà par relire cette ligne par ex :
<input type="hidden" value="$nomcli" name="nomcli">

Posté : 23 mai 2005, 09:49
par zeus
Déjà, dans ton 2eme code, il y a un problème ici :
<form action="recap.php" method="post">
<input type="button" value="Imprimer le récapitulatif" onclick="recap()">
<input type="hidden" value="$nomcli" name="nomcli">
<input type="hidden" value="$prenomcli" name="prenomcli">
<input type="hidden" value="$ruecli" name="ruecli">
<input type="hidden" value="$CPcli" name="CPcli">
<input type="hidden" value="$villecli" name="villecli">
<input type="hidden" value="$mode_pay" name="mode_pay">
</form> 
Il faut que tu affiche le CONTENU de tes variables php et non pas leur nom.

Met ce code et donne nous l'évolution :
<form action="recap.php" method="post">
<input type="button" value="Imprimer le récapitulatif" onclick="recap()">
<input type="hidden" value="<?=$nomcli ?>" name="nomcli">
<input type="hidden" value="<?=$prenomcli ?>" name="prenomcli">
<input type="hidden" value="<?=$ruecli ?>" name="ruecli">
<input type="hidden" value="<?=$CPcli ?>" name="CPcli">
<input type="hidden" value="<?=$villecli ?>" name="villecli">
<input type="hidden" value="<?=$mode_pay ?>" name="mode_pay">
</form> 

Posté : 23 mai 2005, 09:51
par slipndi
Bonjour
voilàa ce que moi j'ai repéré
<form action="recap.php" method="post">
<input type="button" value="Imprimer le récapitulatif" onclick="recap()">
<input type="hidden" value="<? echo $nomcli ?>" name="nomcli">
<input type="hidden" value="<? echo $prenomcli ?>" name="prenomcli">
<input type="hidden" value="<? echo $ruecli ?>" name="ruecli">
<input type="hidden" value="<? echo $CPcli ?>" name="CPcli">
<input type="hidden" value="<? echo $villecli ?>" name="villecli">
<input type="hidden" value="<? echo $mode_pay ?>" name="mode_pay">
</form> 
ps : griller par zeus :s

Posté : 23 mai 2005, 09:59
par zeus
C'est pas magnifique ça Break ??

Tu post à 45 et en 5mn, tu as 3 post qui te donne la réponse ? 3 post en 3 mn qui donnent la même réponse

Posté : 23 mai 2005, 10:04
par Break
Merci de votre rapidité ! Mais désolée ça ne fonctionne toujours pas... :oops:

Posté : 23 mai 2005, 10:16
par zeus
Dans ta fonction recpa, tu ne valide pas le formulaire !!!!

Tu affiche bien la popup, mais comme tu n'a pas valider le formulaire, tu ne peut pas afficher les données par post !!!

Il faut que ta fonction javascript valide ton formulaire, comme ça :

Code : Tout sélectionner

function recap() { document.recapitulatif.submit() } <form action="recap.php" method="post" name="recapitulatif"> <input type="button" value="Imprimer le récapitulatif" onclick="recap()"> <input type="hidden" value="$nomcli" name="nomcli"> <input type="hidden" value="$prenomcli" name="prenomcli"> <input type="hidden" value="$ruecli" name="ruecli"> <input type="hidden" value="$CPcli" name="CPcli"> <input type="hidden" value="$villecli" name="villecli"> <input type="hidden" value="$mode_pay" name="mode_pay"> </form>
Par contre, pour ouvrir ton formulaire dans une popup, je penche qu'il faut se pencher sur les événements de ton formulaire :

Code : Tout sélectionner

<form onSubmit="Javascript: window.open("recap.php", "recap", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50"); " action="recap.php" method="post" name="recapitulatif">

Posté : 23 mai 2005, 10:25
par break_71
Image... La popup ne s'affiche plus du tout. :x

Posté : 23 mai 2005, 10:59
par zeus
J'avais fait des erreurs de " dans ma ligne et j'avais oublié de mettre l'attribut target !!! Remplace cette ligne :

Code : Tout sélectionner

<form action="recap.php" method="post" name="recapitulatif" target="_blank">
Par contre j'ai pas réussi pour afficher une popup !!!

Posté : 23 mai 2005, 11:00
par break_71
Par contre, pour ouvrir ton formulaire dans une popup, je penche qu'il faut se pencher sur les événements de ton formulaire :

Code : Tout sélectionner

<form onSubmit="Javascript: window.open("recap.php", "recap", "toolbar=no, location=no, directories=no, status=yes, scrollbars=yes, resizable=no, copyhistory=no, width=400, height=400, left=300, top=50"); " action="recap.php" method="post" name="recapitulatif">
Je n'utilise pas ce code-ci car lorsque je l'utilise la popup ne s'ouvre plus.

Je ne comprends pas pourquoi les données ne sont pas transmises :roll: ...

Posté : 23 mai 2005, 11:02
par zeus
J'ai essayé ton code chez moi et avec la derniere ligne form que je t'ai donné, les données sont bien transmises !!!!

La seule différences c'est que dans la page intermédiaire, je les initialise au lien de les récupérer !!! Mais si ça vient de là tu ne les auraient pas à l'écran !!!

Posté : 23 mai 2005, 11:07
par break_71
Je viens de tester. Si j'ouvre dans une popup les infos ne sont pas transmises, sinon si j'ouvre dans une fenêtre normale elles le sont ... :?:

Posté : 23 mai 2005, 11:11
par zeus
C'est ce que je ta disais tout à l'heure, si tu ouvre une popup en javascript, tu ne fait pas la validation du formulaire et tu ne passe pas les données.

Si tu tiens absolument à afficher les données dans une popup, tu peux afficher une popup en JS puis attribuer une valeur à tes zones de texte via JS, mais là, je maîtrise beaucoup moins !!!

Posté : 23 mai 2005, 11:12
par break_71
Oui bah moi non plus je maitrise pas ... GRRRRRRRRRRR :cry:

Posté : 23 mai 2005, 11:25
par zeus
Post dans la catégorie Javascript !!!!

Ce que je pourrais te donner comme piste, ca serait :
function recap(val1, val2, ...)
{
  fenetre = window.open(...);
  fenetre.texte1.value = val1;
  ...
}
et que dans ton form,
<input type="button" value="Imprimer le récapitulatif" onclick="recap('<?=$nomcli ?>', ...)">