Données non transmises

Break
Invité n'ayant pas de compte PHPfrance

23 mai 2005, 09:45

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.

ViPHP
pjl
ViPHP | 2119 Messages

23 mai 2005, 09:48

Commence déjà par relire cette ligne par ex :
<input type="hidden" value="$nomcli" name="nomcli">

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 09:49

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> 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 281 Messages

23 mai 2005, 09:51

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

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 09:59

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
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Break
Invité n'ayant pas de compte PHPfrance

23 mai 2005, 10:04

Merci de votre rapidité ! Mais désolée ça ne fonctionne toujours pas... :oops:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 10:16

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">
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

23 mai 2005, 10:25

Image... La popup ne s'affiche plus du tout. :x

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 10:59

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 !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

23 mai 2005, 11:00

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: ...

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 11:02

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 !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

23 mai 2005, 11:07

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 ... :?:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 11:11

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 !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 48 Messages

23 mai 2005, 11:12

Oui bah moi non plus je maitrise pas ... GRRRRRRRRRRR :cry:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

23 mai 2005, 11:25

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 ?>', ...)"> 
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer