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


utilisateur
Auteur
Réponse acceptée

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

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

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>

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

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

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

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>

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