Calculs dans un formulaire en php
Fermé
Utilisateur anonyme
-
17 mars 2009 à 14:52
vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 - 23 mars 2009 à 08:53
vincent170186 Messages postés 316 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 28 septembre 2012 - 23 mars 2009 à 08:53
A voir également:
- Calcul php formulaire
- Calcul moyenne excel - Guide
- Formulaire de réclamation facebook - Guide
- Easy php - Télécharger - Divers Web & Internet
- Formulaire de reclamation instagram - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
5 réponses
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
17 mars 2009 à 14:54
17 mars 2009 à 14:54
Comme vous l'avez si bien dit, php demande un rechargement pour mettre à jour les données, donc à moins de faire un submit de votre formulaire vous n'obtiendrez rien.
Javascript peut en effet vous être utile dans ce cas, mais vous préférerez peut-être rester en php et faire uniquement le submit.
Javascript peut en effet vous être utile dans ce cas, mais vous préférerez peut-être rester en php et faire uniquement le submit.
salut !
je ne crois pas que tu ais besoin de javascript pour faire des calcul !
il y a un souci avec tes echo
tu met <? echo $QA*$PUA?> essaye <? echo "$QA*$PUA";?> toujours echo"contenu";
ça fonctionnera mieux
et plutôt que de faire <? echo $QA*$PUA?> crée plutot une variable suplementaire du genre
$qqchose= $QA*$PUA; et ensuite <? echo "$qqchose ";?> !!
voila !
je ne crois pas que tu ais besoin de javascript pour faire des calcul !
il y a un souci avec tes echo
tu met <? echo $QA*$PUA?> essaye <? echo "$QA*$PUA";?> toujours echo"contenu";
ça fonctionnera mieux
et plutôt que de faire <? echo $QA*$PUA?> crée plutot une variable suplementaire du genre
$qqchose= $QA*$PUA; et ensuite <? echo "$qqchose ";?> !!
voila !
Merci Vincent
J'ai fait qq modifs :
1/ dans mes echo, c'est bien echo $qqchose et non echo "$qqchose", sinon il m'écrit : $qqchose, or ce n'est pas du texte qui m'intéresse mais le résultat du calcul que je souhaite
2/ avant le formulaire j'ai rajouté en début une initialisation des variables de calcul (suite à ton conseil pour créer des variables de calcul) :
<?php
//Initialisation des variables
$TA=' ';
$TB=' ';
$TC=' ';
$TTC=' ';
$TVA=' ';
$HT=' ';
?>
3/ ensuite j'ai rajouté un bouton calculer de type submit afin de rafraîchir les variables, mais ça ne marche pas ! comme je débute, c'est dur...
<?php
//Si le bouton "calculer" du formulaire est cliqué
if(isset($_POST['calculer']))
{
//Calculs
$TA=$QA*$PUA;
$TB=$QB*$PUB;
$TC=$QC*$PUC;
$TTC=$TA+$TB+$TC;
$TVA=$TTC/1.196;
$HT=$TTC-$TVA;
}
//Si le bouton du formulaire est cliqué ('envoyer' = c'est le nom du bouton submit)
if(isset($_POST['envoyer']))
{
//Récupération des variables du formulaire par methode POST
$nom = $_POST['nom'];
$prenom = $_POST['prenoml'];
$adresse = $_POST['adresse'];
$cp = $_POST['cp'];
$ville = $_POST['ville'];
$QA = $_POST['QA'];
$PUA = $_POST['PUA'];
$TA = $_POST['TA'];
$QA = $_POST['QB'];
$PUA = $_POST['PUB'];
$TA = $_POST['TB'];
$QA = $_POST['QC'];
$PUA = $_POST['PUC'];
$TA = $_POST['TC'];
//Génération des autres variables. Ne pas changer "From:" c'est un terme de la fonction mail php
$email_destinataire = "xxx";
$subject = "Vous avez une commande";
//Génération du corps du mail
$body = "Client : \n"."$nom"."$prenom \n"."$adresse \n"."$cp"."$ville \n\n"."Commande : \n"."Article A : $QA article(s) à $PUA pour un total de $TA \n"."Article B : $QB article(s) à $PUB pour un total de $TB \n"."Article C : $QC article(s) à $PUC pour un total de $TC \n\n"."Total commande : $TTC \n\n";
//Génération des entêtes du mail / From : pour indiquer l'expéditeur (nom + email) / Reply-to pour pouvoir lui répondre (sinon c'est une adresse du site web par défaut et souvent non en service qui est indiquée)
$headers = "From: $nom <$email_expediteur> \n";
$headers .= "Reply-To: $email_expediteur \n\n";
//envoi du mail avec la fonction mail()
echo "<h3 class='centre'>votre commande a été envoyé ! Merci</h3>";
mail($email_destinataire, $subject, $body, $headers);
}
?>
Qui peut m'aider? Merci
J'ai fait qq modifs :
1/ dans mes echo, c'est bien echo $qqchose et non echo "$qqchose", sinon il m'écrit : $qqchose, or ce n'est pas du texte qui m'intéresse mais le résultat du calcul que je souhaite
2/ avant le formulaire j'ai rajouté en début une initialisation des variables de calcul (suite à ton conseil pour créer des variables de calcul) :
<?php
//Initialisation des variables
$TA=' ';
$TB=' ';
$TC=' ';
$TTC=' ';
$TVA=' ';
$HT=' ';
?>
3/ ensuite j'ai rajouté un bouton calculer de type submit afin de rafraîchir les variables, mais ça ne marche pas ! comme je débute, c'est dur...
<?php
//Si le bouton "calculer" du formulaire est cliqué
if(isset($_POST['calculer']))
{
//Calculs
$TA=$QA*$PUA;
$TB=$QB*$PUB;
$TC=$QC*$PUC;
$TTC=$TA+$TB+$TC;
$TVA=$TTC/1.196;
$HT=$TTC-$TVA;
}
//Si le bouton du formulaire est cliqué ('envoyer' = c'est le nom du bouton submit)
if(isset($_POST['envoyer']))
{
//Récupération des variables du formulaire par methode POST
$nom = $_POST['nom'];
$prenom = $_POST['prenoml'];
$adresse = $_POST['adresse'];
$cp = $_POST['cp'];
$ville = $_POST['ville'];
$QA = $_POST['QA'];
$PUA = $_POST['PUA'];
$TA = $_POST['TA'];
$QA = $_POST['QB'];
$PUA = $_POST['PUB'];
$TA = $_POST['TB'];
$QA = $_POST['QC'];
$PUA = $_POST['PUC'];
$TA = $_POST['TC'];
//Génération des autres variables. Ne pas changer "From:" c'est un terme de la fonction mail php
$email_destinataire = "xxx";
$subject = "Vous avez une commande";
//Génération du corps du mail
$body = "Client : \n"."$nom"."$prenom \n"."$adresse \n"."$cp"."$ville \n\n"."Commande : \n"."Article A : $QA article(s) à $PUA pour un total de $TA \n"."Article B : $QB article(s) à $PUB pour un total de $TB \n"."Article C : $QC article(s) à $PUC pour un total de $TC \n\n"."Total commande : $TTC \n\n";
//Génération des entêtes du mail / From : pour indiquer l'expéditeur (nom + email) / Reply-to pour pouvoir lui répondre (sinon c'est une adresse du site web par défaut et souvent non en service qui est indiquée)
$headers = "From: $nom <$email_expediteur> \n";
$headers .= "Reply-To: $email_expediteur \n\n";
//envoi du mail avec la fonction mail()
echo "<h3 class='centre'>votre commande a été envoyé ! Merci</h3>";
mail($email_destinataire, $subject, $body, $headers);
}
?>
Qui peut m'aider? Merci
NookZ
Messages postés
2138
Date d'inscription
jeudi 29 janvier 2009
Statut
Membre
Dernière intervention
7 mars 2013
514
>
Utilisateur anonyme
19 mars 2009 à 14:25
19 mars 2009 à 14:25
Il faut remplacer
if(isset($_POST['envoyer']))
par
if(isset($_POST))
car ce que tu as mis veut dire : si on a envoyé par la méthode post un champ de formulaire de nom envoyer
if(isset($_POST['envoyer']))
par
if(isset($_POST))
car ce que tu as mis veut dire : si on a envoyé par la méthode post un champ de formulaire de nom envoyer
vincent170186
Messages postés
316
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
28 septembre 2012
52
19 mars 2009 à 14:47
19 mars 2009 à 14:47
salut !
alors petite astuce pour tes calculs avec du javascript !
au lieu de faire un bouton submit fait un <input type='button' value='calculer' onclick='calcul()' />
et en haut de ta page tu crée une fonction calcul():
alors je t'explique un peu comment ça fonctionnent !
on prend le cas ou le formulaire s'appelle form et l'input :input
document.form.input.value ->correspond a la valeur de ton input
donc maintenant si on a input1 et input2 et on veut que le resultat de l'input1+l'input2 qu'on mettra dans un input3
on aura donc document.form.input3.value=(document.form.input1.value+document.form.input2.value);
alors pour ce simplifié la vie tu l'identifie au début de ta fonction !
genre g=document.form.input3.value ;
h=document.form.input1.value ;
i=document.form.input2.value ;
on aura donc g=h+i ;
donc on revient a la fonction
function calcul()
{
g=document.form.input3.value ;
h=document.form.input1.value ;
i=document.form.input2.value ;
g=h+i ;
}
bon après tu fait ça pour tous tes calculs et si tu veut pas que l'utilisateur voit les calculs tu les fait dans input type='hidden'
j'espere avoir été clair ! sinon n'esite pas a poser des questions
voila !
alors petite astuce pour tes calculs avec du javascript !
au lieu de faire un bouton submit fait un <input type='button' value='calculer' onclick='calcul()' />
et en haut de ta page tu crée une fonction calcul():
alors je t'explique un peu comment ça fonctionnent !
on prend le cas ou le formulaire s'appelle form et l'input :input
document.form.input.value ->correspond a la valeur de ton input
donc maintenant si on a input1 et input2 et on veut que le resultat de l'input1+l'input2 qu'on mettra dans un input3
on aura donc document.form.input3.value=(document.form.input1.value+document.form.input2.value);
alors pour ce simplifié la vie tu l'identifie au début de ta fonction !
genre g=document.form.input3.value ;
h=document.form.input1.value ;
i=document.form.input2.value ;
on aura donc g=h+i ;
donc on revient a la fonction
function calcul()
{
g=document.form.input3.value ;
h=document.form.input1.value ;
i=document.form.input2.value ;
g=h+i ;
}
bon après tu fait ça pour tous tes calculs et si tu veut pas que l'utilisateur voit les calculs tu les fait dans input type='hidden'
j'espere avoir été clair ! sinon n'esite pas a poser des questions
voila !
Utilisateur anonyme
20 mars 2009 à 09:44
20 mars 2009 à 09:44
Bonjour
Merci pour vos réponses
Alors en ce qui concerne la méthode PHP, cela ne fonctionne pas, le calcul fait que la page se recharge mais ne conserve pas les données saisies, je me retrouve donc devant une page vide, alors qu'il faudrait conserver toutes les données saisies pour voir les calculs. En modifiant le isset comme indiqué, je reçois 3 messages, alors que je n'ai pas cliqué sur le bouton "envoyer" mais "calculer". Je ne comprends pas...
J'ai essayé avec javascript, dans le head j'ai mis un calcul pour tester :
<script type="text/javascript">
function calcul()
{
QA=document.form_commande.QA.value ;
PUA=document.form_commande.PUA.value ;
TA=QA*PUA ;
}
</script>
et ajouter le onclick sur le bouton "calculer"
Comme pour php, la page se rafraichit, et revient vierge !
Bouhouhouh !!!
je désespère....
Merci pour votre aide
Merci pour vos réponses
Alors en ce qui concerne la méthode PHP, cela ne fonctionne pas, le calcul fait que la page se recharge mais ne conserve pas les données saisies, je me retrouve donc devant une page vide, alors qu'il faudrait conserver toutes les données saisies pour voir les calculs. En modifiant le isset comme indiqué, je reçois 3 messages, alors que je n'ai pas cliqué sur le bouton "envoyer" mais "calculer". Je ne comprends pas...
J'ai essayé avec javascript, dans le head j'ai mis un calcul pour tester :
<script type="text/javascript">
function calcul()
{
QA=document.form_commande.QA.value ;
PUA=document.form_commande.PUA.value ;
TA=QA*PUA ;
}
</script>
et ajouter le onclick sur le bouton "calculer"
Comme pour php, la page se rafraichit, et revient vierge !
Bouhouhouh !!!
je désespère....
Merci pour votre aide
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
vincent170186
Messages postés
316
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
28 septembre 2012
52
23 mars 2009 à 08:53
23 mars 2009 à 08:53
pour le javascript a tu bien mis on onclick=calcul()
et ha oui ! si tu est sous IE c'est normal que le javascript ne fonctionnent pas renome tes variable !
je m'explique il faut que ta variable ai un nom unique par exemple dans ta page ton input s'appelle QA et ta variable aussi donc ça ne fonctionnera pas ! essaye en les renomant et normalement ça devrait marcher
voila !
et ha oui ! si tu est sous IE c'est normal que le javascript ne fonctionnent pas renome tes variable !
je m'explique il faut que ta variable ai un nom unique par exemple dans ta page ton input s'appelle QA et ta variable aussi donc ça ne fonctionnera pas ! essaye en les renomant et normalement ça devrait marcher
voila !