calcul tout simple

Par utilisateur, il y a 11 ans


Bonjour à toutes et à tous
Je dois faire un formulaire qui doit indiquer à l'tuilisateur un prix qui est le total des options choisies.
Je ne connais pas grand chose à javascrip j'ai essayé plein de bout de code trouvé à droite à gauche mais rien n'y fait.
s'il vous plait pouvez-vous m'aider ?
voici le code :

<html> <head> <title>calcul</title> <script language="Javascript"> function calcul() { //genre (homme) + 1 ou plusieur lots if (document.nom_du_formulaire.genre.value = 'homme'){ var s1=0; if(document.nom_du_formulaire.lot3.checked==true){ var prix4 = 4; } if(document.nom_du_formulaire.lot7.checked==true){ var prix7 = 7; } if(document.nom_du_formulaire.lot10.checked==true){ var prix8 = 8; } if(document.nom_du_formulaire.lot20.checked==true){ var prix10 = 10; } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); } //genre(uniquement femme) + partie + un ou plusieurs lots if (document.nom_du_formulaire.genre.value = 'femme'){ var s1=0; if(document.nom_du_formulaire.partie.value = 'partie1'){ var prixP = 10; } else if(document.nom_du_formulaire.partie.value = 'partie2'){ var prixP = 20; } else if(document.nom_du_formulaire.partie.value = 'partie3'){ var prixP = 30; } if(document.nom_du_formulaire.lot3.checked==true){ var prix4 = 4; } if(document.nom_du_formulaire.lot7.checked==true){ var prix7 = 7; } if(document.nom_du_formulaire.lot10.checked==true){ var prix8 = 8; } if(document.nom_du_formulaire.lot20.checked==true){ var prix10 = 10; } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prixP)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); } } </script> </head> <body> <form name="nom_du_formulaire" method="POST"> <br/> <br/> <select name="genre" onchange="calcul()"> <option value="homme"> homme</option> <option value="femme"> femme</option> </select> <br/> <br/> <select name="partie" onchange="calcul()"> <option value="partie1"> partie1</option> <option value="partie2"> partie2</option> <option value="partie3"> partie3</option> </select> <br/> <br/> <INPUT type="checkbox" name="lot3" value="lot3" onclick="calcul()">lot 3 <INPUT type="checkbox" name="lot7" value="lot7" onclick="calcul()">lot 7 <INPUT type="checkbox" name="lot10" value="lot10" onclick="calcul()">lot 10 <INPUT type="checkbox" name="lot20" value="lot20" onclick="calcul()">lot 20 <br/> <br/> <br/> Total : <input type="text" name="affichage_du_total" size="7" > </form> </body> </html>

Rien ne s'affiche dans la case total, je ne sais pas pourquoi ...

merci pour votre aide

8 réponses

Huggy, il y a 11 ans

As-tu essayé de mettre un value="" dans "affichage_du_total" ?

utilisateur, il y a 11 ans

je viens de la faire mais cela ne donne rien de plus :

<html> <head> <title>calcul</title> <script language="Javascript"> function calcul() { //genre (homme) + 1 ou plusieur lots if (document.nom_du_formulaire.genre.value = 'homme'){ var s1=0; if(document.nom_du_formulaire.lot3.checked==true){ var prix4 = 4; } if(document.nom_du_formulaire.lot7.checked==true){ var prix7 = 7; } if(document.nom_du_formulaire.lot10.checked==true){ var prix8 = 8; } if(document.nom_du_formulaire.lot20.checked==true){ var prix10 = 10; } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); } //genre(uniquement femme) + partie + un ou plusieurs lots if (document.nom_du_formulaire.genre.value = 'femme'){ var s1=0; if(document.nom_du_formulaire.partie.value = 'partie1'){ var prixP = 10; } else if(document.nom_du_formulaire.partie.value = 'partie2'){ var prixP = 20; } else if(document.nom_du_formulaire.partie.value = 'partie3'){ var prixP = 30; } if(document.nom_du_formulaire.lot3.checked==true){ var prix4 = 4; } if(document.nom_du_formulaire.lot7.checked==true){ var prix7 = 7; } if(document.nom_du_formulaire.lot10.checked==true){ var prix8 = 8; } if(document.nom_du_formulaire.lot20.checked==true){ var prix10 = 10; } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prixP)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); } } </script> </head> <body> <form name="nom_du_formulaire" method="POST"> <br/> <br/> <select name="genre" onchange="calcul()"> <option value="homme"> homme</option> <option value="femme"> femme</option> </select> <br/> <br/> <select name="partie" onchange="calcul()"> <option value="partie1"> partie1</option> <option value="partie2"> partie2</option> <option value="partie3"> partie3</option> </select> <br/> <br/> <INPUT type="checkbox" name="lot3" value="lot3" onclick="calcul()">lot 3 <INPUT type="checkbox" name="lot7" value="lot7" onclick="calcul()">lot 7 <INPUT type="checkbox" name="lot10" value="lot10" onclick="calcul()">lot 10 <INPUT type="checkbox" name="lot20" value="lot20" onclick="calcul()">lot 20 <br/> <br/> <br/> Total : <input type="text" name="affichage_du_total" value="" size="7" > </form> </body> </html>
Huggy, il y a 11 ans

Fais un console.log de ta somme pour voir s'il n'y a pas un blème

utilisateur, il y a 11 ans

c'est fait il n'y a rien, pas de message d'erreur juste : "Iframe attached successfully"

Huggy, il y a 11 ans

déclares tes variables au debut de ta fonction calcul()
var prixP = 0;
var prix4 = 0;
...
et dans les if retire les 'var'
puis tu mets des alert() partout pour tracer le cheminement

utilisateur, il y a 11 ans

J'ai fait les modifs en rien ne ce passe, aucun alert ne s'affiche. Je pense que sa vient du genre homme ou femme la valeur ne doit pas respecter l'egalité exemple :
if (document.nom_du_formulaire.genre.value = 'homme') la value ne correspond pas à "homme" ou alors ce n'est pas la bonne façon de l'écrire...

Voici le code actuel

<html> <head> <title>calcul</title> <script language="Javascript"> function calcul() { //genre (homme) + 1 ou plusieur lots if (document.nom_du_formulaire.genre.value = 'homme'){ var s1=0; var prix4 = 0; var prix7 = 0; var prix8 = 0; var prix10 = 0; if(document.nom_du_formulaire.lot3.checked==true){ prix4 = 4; alert(prix4); } if(document.nom_du_formulaire.lot7.checked==true){ prix7 = 7; alert(prix7); } if(document.nom_du_formulaire.lot10.checked==true){ prix8 = 8; alert(prix8); } if(document.nom_du_formulaire.lot20.checked==true){ prix10 = 10; alert(prix10); } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); alert(document.nom_du_formulaire.affichage_du_total.value); } //genre(uniquement femme) + partie + un ou plusieurs lots if (document.nom_du_formulaire.genre.value = 'femme'){ var s1=0; var prixP = 0; var prix4 = 0; var prix7 = 0; var prix8 = 0; var prix10 = 0; if(document.nom_du_formulaire.partie.value = 'partie1'){ prixP = 10; alert(prixP); } else if(document.nom_du_formulaire.partie.value = 'partie2'){ prixP = 20; alert(prixP); } else if(document.nom_du_formulaire.partie.value = 'partie3'){ prixP = 30; alert(prixP); } if(document.nom_du_formulaire.lot3.checked==true){ prix4 = 4; alert(prix4); } if(document.nom_du_formulaire.lot7.checked==true){ prix7 = 7; alert(prix7); } if(document.nom_du_formulaire.lot10.checked==true){ prix8 = 8; alert(prix8); } if(document.nom_du_formulaire.lot20.checked==true){ prix10 = 10; alert(prix10); } document.nom_du_formulaire.affichage_du_total.value=parseInt(s1)+parseInt(prixP)+parseInt(prix4)parseInt(prix7)+parseInt(prix8)+parseInt(prix10); alert(document.nom_du_formulaire.affichage_du_total.value); } } </script> </head> <body> <form name="nom_du_formulaire" method="POST"> <br/> <br/> <select name="genre" onchange="calcul()"> <option value="homme"> homme</option> <option value="femme"> femme</option> </select> <br/> <br/> <select name="partie" onchange="calcul()"> <option value="partie1"> partie1</option> <option value="partie2"> partie2</option> <option value="partie3"> partie3</option> </select> <br/> <br/> <INPUT type="checkbox" name="lot3" value="lot3" onclick="calcul()">lot 3 <INPUT type="checkbox" name="lot7" value="lot7" onclick="calcul()">lot 7 <INPUT type="checkbox" name="lot10" value="lot10" onclick="calcul()">lot 10 <INPUT type="checkbox" name="lot20" value="lot20" onclick="calcul()">lot 20 <br/> <br/> <br/> Total : <input type="text" name="affichage_du_total" value="" size="7" > </form> </body> </html>
utilisateur, il y a 11 ans

ok c'est bon sa venais du tout début

var genre= document.getElementById("genre"); // là il falait rajouter l'id du select if (genre.options[genre.selectedIndex].value == "homme"){...// le reste du code

Merci infiniment à toi huggy

Huggy, il y a 11 ans

En effet il faut mettre == pour un test
j'avais pas vu