Changer une variable JS en variable php

Fermé
patrocle Messages postés 20 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 2 avril 2010 - 5 juin 2008 à 15:11
patrocle Messages postés 20 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 2 avril 2010 - 5 juin 2008 à 15:50
Bonjour,
sur mon site je souhaiterai creer un bon de commande[formulaire] qui s'envoie sur mon e-mail.

j'ai un calcul d'un bon de commande sur une page php. ce calcul se fait en javascript ,
la partie php sert a remplir les champs NOM , PRÉNOM ,... puis permet d'envoyer ces champs sur mon adresse e-mail...

J'aimerais intégrer le calcul du devis [bon de commande] a l'e-mail
ce calcul est effectuer en javascript, j'ai donc pensé a créer des variables php qui récupèrent : le produit commandé, la quantité de ce produit commandé , et son prix ( en faite je voudrai récupérer tout ce qui ce fait en javascript)

une fois que les variables php fonctionneront , je pourrai compléter l'email de ce qui a été commandé

la partie ou je bloque est celle la:


  
<b>Produits commandés :</b><br>
  </p>
  <table BORDER="1">
    <tr>
      <td>Quantité </td>
      <td>Produit </td>
      <td>Prix unitaire </td>
      <td>Prix total</td>
    </tr>
    <script LANGUAGE="JavaScript1.1">
var nbprods = opener.nbprods;
var somme = 0;
for (i=1; i<=nbprods; i++) {
   document.write("<TR><TD>" + opener.prods[i].quantite);
   document.write("<TD>" + opener.prods[i].desc);
   document.write("<TD>" + opener.prods[i].prix);
   totalproduit = opener.prods[i].prix * opener.prods[i].quantite;
   totalproduit = Math.round(totalproduit * 100) /100;
   somme += totalproduit;
   document.write("<TD>" + totalproduit);
   document.write("</TR>\n");
   document.write("<INPUT TYPE=HIDDEN NAME='qte" + i + "'");
   document.write(" VALUE= '" + opener.prods[i].quantite + "'>\n");
   document.write("<INPUT TYPE=HIDDEN NAME='desc" + i + "'");
   document.write(" VALUE='" + opener.prods[i].desc + "'>\n");
   
}
document.write("<TR><TD COLSPAN=3><B>Montant total :</B>");
document.write("<TD>" + somme + "</TR>");

</script>


je ne sais pas comment attribuer la valeur d'une variable JS a une variable php
ex:

for (i=1; i<=nbprods; i++) {
$prodsqte[$i]=opener.prods[i].quantite;
$prodsdesc[$i]=opener.prods[i].desc;
}


évidement cela ne fonctionne pas, j'ai chercher une solution a mon probleme , mais je debute le php et le javascript..
et je n'ai rien trouver , en tous cas rien qui ne puisse m'aider , je ne sais meme pas si c'est possible...
MERCI DE M'AIDER!!! SVP
A voir également:

4 réponses

macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
5 juin 2008 à 15:23
Bonjour.

Le php est un script qui s'éxéecute du côté du serveur.
Le JavaScript s'éxécute du côté du client.
Il n'y a donc pas de moyen de communication entre les deux (enfin, pas de moyen "trivial").

Ce que tu fais dans le JS est un bon début :
Tu crées des champs cachés dans ton formulaire avec document.write("<INPUT TYPE=HIDDEN NAME='qte" + i + "'");

Ensuite, quand tu valides le formulaire, tu renvoies à une page php qui va récupérer tout ce qui est dans les INPUT.
Si tu as <form action="monscript.php" method="post"> il suffit de mettre dans la page monscript.php
$mavariable = $_POST['nomduchampINPUT']; et tu pourras travailler avec...

J'espère que je suis clair ?
0
patrocle Messages postés 20 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 2 avril 2010 3
5 juin 2008 à 15:31
merci d'avoir répondu,

mais puis je , apres envoyé le formulaire sur une autre page, mettre une variable du type:

for (i=1; i<=nbprods; i++) {

$quantite[i]= $_POST[qte[i]];
}


est ce que je vais recuperer le resultat de la partie javascript???
et pour la boucle php , comment puis je faire pour affecter le nombre "nbprods" a une variable php
est ce possible de faire

$nbprods=$_POST[nbprods];

?
0
macgawel Messages postés 664 Date d'inscription mercredi 7 mai 2008 Statut Membre Dernière intervention 1 novembre 2008 89
5 juin 2008 à 15:37
est ce que je vais recuperer le resultat de la partie javascript???
et pour la boucle php , comment puis je faire pour affecter le nombre "nbprods" a une variable php
est ce possible de faire

Non. Tu ne peux pas récupérer dans ton php (traité sur le serveur) des variables JS (traité sur le client).

Le plus simple, c'est d'envoyer le nbprods via un champ caché <input>
0
patrocle Messages postés 20 Date d'inscription mercredi 6 décembre 2006 Statut Membre Dernière intervention 2 avril 2010 3
5 juin 2008 à 15:50
"$mavariable = $_POST['nomduchampINPUT']; et tu pourras travailler avec... "
"Non. Tu ne peux pas récupérer dans ton php (traité sur le serveur) des variables JS (traité sur le client). "


les champs INPUT sont en javascript donc c'est impossible de recuperer le nom de produit que la personne a commander ni la quantité?

je ne peux donc pas completer mon email avec la commande de la personne???
si oui comment puis je faire concretement,
c'est possible sur la page actuelle:
document.write("<INPUT TYPE=HIDDEN NAME='qte" + i + "'");



et sur une autre page avec
<form action="monscript.php" method="post">


for (i=1; i<=nbprods; i++) {
$qte[i]= $_POST[qte[i]];
}


si ce n'est pas possible y a t'il une autre solution?

ps pour le nombre nbprods , je peux remplacer la boucle for par while...
0