Calculs conditionnels dans un formulaire

Résolu
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007 - 15 oct. 2007 à 14:09
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007 - 23 oct. 2007 à 11:41
Bonjour,

J'ai un formulaire avec un champ texte Commentaire qui doit prendre en compte plusieurs données pour afficher le résultat voulu.
Comment faire pour que le calcul prenne en compte plusieurs variables ?

exemple :

function commente(imc) {
   if (imc>=22 && imc<23) {
   if (taille<160)
   if (form.sexe.value==2)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 1 qui correspond à une perte de 3 à 5 kg." ;

Merci

Magali,
Perdue dans le code javascript

16 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
23 oct. 2007 à 09:34
Bonjour,

Il ne fallait pas reprendre telque mais



à toi d'adapter...










var Valeur; // Variable temporaire
if (form.sexe.value= =1){
  //-- Calcul
  Valeur = (form.taille.value - 100) - (form.taille.value-150) /4;
  //-- Affectation
  form.poidsID.value  = Math.round( Valeur *10) /10;





  //-- Calcul






  Valeur = 20 *(form.taille.value *form.taille.value) /10000;




  //-- Affectation





  form.poidsmini.value = Math.round( Valeur *10) /10;





  //-- Calcul






  Valeur = 25 *(form.taille.value *form.taille.value) /10000;




  //-- Affectation





  form.poidsmaxi.value = Math.round( Valeur *10) /10;





  //-- Calcul






  Valeur = form.poids.value *10000 /(form.taille.value *form.taille.value);




  //-- Affectation





  form.imc.value = Math.round( Valeur *10) /10;

...ETC....
voili....
 



;0)
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 oct. 2007 à 14:26
Bonjour,


<hr size="2" width="100%" />
    if (imc>=22 && imc<23)
              {    if (taille<160)
                           {    if (form.sexe.value==2)
                                        {     les 3 conditions sont vraies   }
                                 else { les 2 1ères sont vraies }
                           }
                   else   {   la 1ère est vraie, pas la 2ème, la 3ème n'est pas testée }
              }
   else    { la 1ère n'est pas vraie, les 2 autres ne sont pas testées }

<hr size="2" width="100%" />
if ( imc>=22 && imc<23 && taille<160 && form.sexe.value==2 )
          {  les 3 conditions sont vraies   }
else   {   au moins une n'est pas vraie }

<hr size="2" width="100%" />


ça dépend donc de ce qu'on veut faire

regarder aussi du coté de  switch ( zone )
                                            {   case valeur_1:
                                                    traitement...
                                                    break;
                                                 case valeur_2:
                                                     ...
                                                 default:
                                            }
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
<hr />
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
15 oct. 2007 à 15:33
Merci beaucoup, mais je ne m'en sort pas. Je n'arrive pas à ce que je veux.
Si je vous donne mon formulaire et mon script, pouvez-vous m'aider à trouver pourquoi cela ne marche pas ?

Encore merci de me donner un peu de votre temps, car de mon côté, je m'arrache les cheveux ...

Voici mon formulaire :




<form>
                 
          ----

                         
Taille (en cm) :
             

           ,
           
             
              ,
         
          ----

                         
Poids (en kg) :

           ,
           
             
              ,
         
          ----

                         
Sexe :

           ,
            Homme
             
              Femme
             
              ,
         
          ----

                         

               
               
               

           ,
         
          ----

                         
Poids idéal :
               

           ,
           
             
              kg
             

              ,
            Poids
              mini :
             
              kg

              ,
           
              Poids maxi :
             
              kg,
         
          ----

                         
IMC
                :

           ,
           
             
              ,
            Poids
              maximum &agrave; perdre
              :
             
              kg,
         
          ----

                         

           ,
         
          ----

                         

                COMMENTAIRES

               

                <textarea name= "commentaire" cols="50" rows="8"></textarea>
               

               

           ,
           
             

             

              ,
         
          ----

            ,
         
          ----

            &nbsp;,
         
          ----

            ,
           
          ----

            &nbsp;,
         
         
       

      </form>




Et voici mon script :




<script language ="Javascript">
<!--
function poidsIdeal(form) {

  if (form.sexe.value==1) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/4 ;
     form.poidsmini.value = 20*(form.taille.value*form.taille.value)/10000 ;
     form.poidsmaxi.value = 25*(form.taille.value*form.taille.value)/10000 ;
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;    //arrondi 2 chiffres apres la virgule
     form.commentaire.value = commente(form.imc.value) ;
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
  }
  if (form.sexe.value==2) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/2.5 ;
     form.poidsmini.value = 19*(form.taille.value*form.taille.value)/10000 ;
     form.poidsmaxi.value = 24*(form.taille.value*form.taille.value)/10000 ;
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;    //arrondi 2 chiffres apres la virgule
     form.commentaire.value = commente(form.imc.value) ;
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
      }
}
function changeSexe(form,sexe) {
   form.sexe.value = sexe ;

}
function calculImc(form) {
   form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;    //arrondi 2 chiffres apres la virgule
   form.commentaire.value = commente(form.imc.value) ;
}
function commente(imc) {
   if (imc<19) {
     return "Vous êtes maigre. Vous ne devez pas entreprendre de régime." ;
   }
   if (imc>=19 && imc<22) {
     return "Votre poids est correct. Vous n'avez pas besoin de perdre du poids." ;
     }
   if (imc>=22 && imc<23)
        { if (taille<160)
            { if (form.sexe.value==2)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 1 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=22 && imc<23)
        { if (taille>=160 && taille<175)
            { if (form.sexe.value==2)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 2 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=22 && imc<23)
        { if (taille>=175)
            { if (form.sexe.value==2)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 3 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=22 && imc<23)
        { if (taille<170)
            { if (form.sexe.value==1)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 3 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=22 && imc<23)
        { if (taille>=170 && taille<185)
            { if (form.sexe.value==1)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 10 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=22 && imc<23)
        { if (taille>=185)
            { if (form.sexe.value==1)
     return "Votre poids est correct mais vous êtes un peu enveloppé(e). Nous vous proposons un PROGRAMME 11 qui correspond à une perte de 3 à 5 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille<160)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 4 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille>=160 && taille<175)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 5 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille>175)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 6 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille<170)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 6 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille>=170 && taille<185)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 12 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=23 && imc<25,5)
           { if (taille>185)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids. Nous vous proposons un PROGRAMME 13 qui correspond à une perte de 5 à 7 kg." ;
   }
   if (imc>=25,5)
           { if (taille<160)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 7 qui correspond à une perte de 7 à 10 kg." ;
   }
   if (imc>=25,5)
           { if (taille>=160) && taille<175)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 8 qui correspond à une perte de 7 à 10 kg." ;
   }
   if (imc>=25,5)
           { if (taille<175)
            { if (form.sexe.value==2)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 9 qui correspond à une perte de 7 à 10 kg." ;
   }
   if (imc>=25,5)
           { if (taille<170)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 9 qui correspond à une perte de 7 à 10 kg." ;
   }
   if (imc>=25,5)
           { if (taille>=170) && taille<185)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 14 qui correspond à une perte de 7 à 10 kg." ;
   }
   if (imc>=25,5)
           { if (taille<185)
            { if (form.sexe.value==1)
     return "Vous êtes en surpoids excessif, vous devez perdre du poids pour votre santé. Nous vous proposons un PROGRAMME 15 qui correspond à une perte de 7 à 10 kg." ;
   }
}
</script>




Magali,
Perdue dans le code javascript ....
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 oct. 2007 à 15:49
ce n'est probablement pas une question javascript,    mais de logique.
    fait un schéma, résoud "en français"...   d'abord puis traduit en javascript.
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
15 oct. 2007 à 15:59
Merci, j'y travaille et je voie dans quel sens je peux retourner la question.

Magali,
Perdue dans le code javascript
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
17 oct. 2007 à 17:05
Bonjour,

J'ai bien bossé et je sens que j'y suis presque.

Peux-tu me dire pourquoi ce script ne marche pas ? Où est la faute ?



function calculProg(form) {
    if (form.sexe.value==1) {
        if (form.taille.value<170) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfait ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 3 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 6 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 9 est pour vous"
            }
           }
        }
      }
    }
  }
}

    if (form.sexe.value==1) {
        if (form.taille.value>=170 && form.taille.value<185) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfait ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 10 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 12 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 14 est pour vous"
            }
           }
        }
      }
    }
  }
}

    if (form.sexe.value==1) {
        if (form.taille.value>185) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfait ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 11 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 13 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 15 est pour vous"
            }
           }
        }
      }
    }
  }
}

    if (form.sexe.value==2) {
        if (form.taille.value<160) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfaite ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 1 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 4 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 7 est pour vous"
            }
           }
        }
      }
    }
  }
}

    if (form.sexe.value==2) {
        if (form.taille.value>=160 && form.taille.value<175) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfaite ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 2 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 5 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 8 est pour vous"
            }
           }
        }
      }
    }
  }
}

    if (form.sexe.value==2) {
        if (form.taille.value>175) {
            if (form.perte.value<1) {
            form.commentaire.value = "Vous êtes parfaite ainsi !"
            } else {
            if (form.perte.value>=1 && form.perte.value<3) {
            form.commentaire.value = "Le Programme Douceur est pour vous"
            } else {
            if (form.perte.value>=3 && form.perte.value<5) {
            form.commentaire.value = "Le Programme 3 est pour vous"
            } else {
            if (form.perte.value>=5 && form.perte.value<7) {
            form.commentaire.value = "Le Programme 6 est pour vous"
            } else {
            if (form.perte.value>=7) {
            form.commentaire.value = "Le programme 9 est pour vous"
            }
           }
        }
      }
    }
  }
}
}

Merci beaucoup.

Magali,
Perdue dans le code javascript
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
17 oct. 2007 à 20:37
Bonjour,

Perso sans préjuger du reste j'aurai plutôt fait un truc du style

function calculProg(form) {
//-- Pour ameliorer la lisibilite
var Comment = "Vous êtes parfait ainsi !"
var Perte   = form.perte.value
var Taille  = form.taille.value;
  if( form.sexe.value==1) {
    if( Taille < 170){
      if( Perte >= 1)
        Comment = "Le Programme Douceur est pour vous"
      if( Perte >= 3)
        Comment = "Le Programme 3 est pour vous"
      if( Perte >= 5)
        Comment = "Le Programme 6 est pour vous"
      if( Perte >= 7)
        Comment = "Le programme 9 est pour vous"
    }
  }
...ETC....
  //-- On affecte a la fin
  form.commentaire.value =Comment;

à toi  de jouer...
 
 

;0)
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
18 oct. 2007 à 08:57
moi je préfère :








if( form.sexe.value==1) {
    if( Taille < 170)
    {


if (Perte >= 7)
         Comment = "Le programme 9 est pour vous";

             else    { if (Perte >= 5)
                Comment = "Le Programme 6 est pour vous";
              else    { if (Perte >= 3)
                            Comment = "Le Programme 3 est pour vous";
                        else { if (Perte >= 1)
                                  Comment = "Le Programme Douceur est pour vous";
                             }
                      }
                       }
      }

mais bon, c'est rien que pour emmouscailler PetoleTeam.   ;o))

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]<hr />
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
18 oct. 2007 à 09:57
Bonjour et merci pour votre aide.

Pour emmouscailler Petole Team, ta version ne marche pas. Rien n'apparaît dans mon champs texte Commentaire.

Voici le script que j'ai écrit d'après tes conseils :




function calculProg(form) {

var Comment = "Vous êtes parfait ainsi !"
var Perte = form.perte.value
var Taille = form.taille.value ;
  if (form.sexe.value==1) {
    if (Taille<170){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 3 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 6 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 9 est pour vous"
    }
  }
  if (form.sexe.value==1) {
    if (Taille>=170){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 10 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 12 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 14 est pour vous"
    }
  }
  if (form.sexe.value==1) {
    if (Taille>=185){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 11 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 13 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 15 est pour vous"
    }
  }
  if (form.sexe.value==2) {
    if (Taille<160){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 1 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 4 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 7 est pour vous"
    }
  }
  if (form.sexe.value==2) {
    if (Taille>=160){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 2 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 5 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 8 est pour vous"
    }
  }
  if (form.sexe.value==2) {
    if (Taille>=175){
      if (Perte>=1)
        Comment = "Le Programme Douceur est pour vous"
      if (Perte>=3)
        Comment = "Le Programme 3 est pour vous"
      if (Perte>=5)
        Comment = "Le Programme 6 est pour vous"
      if (Perte>=7)
        Comment = "Le programme 9 est pour vous"
    }
  }
form.commentaire.value = Comment ;
}



Et pour emouscailler aussi Bultez (y'a pas de raison !), ta version ne marche pas non plus. Voici le script selon tes conseils :


function calculProg(form) {

var Perte = form.perte.value
var Taille = form.taille.value ;

  if (form.sexe.value==1) {
    if (Taille < 170) {
      if (Perte >= 7)
         Comment = "Le programme 9 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 6 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 3 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
  if (form.sexe.value==1) {
    if (Taille >= 170) {
      if (Perte >= 7)
         Comment = "Le programme 14 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 12 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 10 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
  if (form.sexe.value==1) {
    if (Taille >= 185) {
      if (Perte >= 7)
         Comment = "Le programme 15 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 13 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 11 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
  if (form.sexe.value==2) {
    if (Taille < 160) {
      if (Perte >= 7)
         Comment = "Le programme 7 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 4 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 1 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
  if (form.sexe.value==2) {
    if (Taille >= 160) {
      if (Perte >= 7)
         Comment = "Le programme 8 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 5 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 2 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
  if (form.sexe.value==2) {
    if (Taille >= 175) {
      if (Perte >= 7)
         Comment = "Le programme 9 est pour vous";
             else {if (Perte >= 5)
                Comment = "Le Programme 6 est pour vous";
                else {if (Perte >= 3)
                    Comment = "Le Programme 3 est pour vous";
                     else {if (Perte >= 1)
                           Comment = "Le Programme Douceur est pour vous";
                           }
                        }
                     }
                    }
               }
form.commentaire.value = Comment ;
}




Où est l'erreur ? Merci, merci et merci.

Magali,
Perdue dans le code javascript
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 11:53
Bonjour,
Traites nous de Blaireau pendant que tu y es...et tu auras RAISON car le problème est ailleurs, nous sommes en présence, me semble t-il, je ne me mouille plus, d'un problème de cohérence de données a comparer.
form.nom_du_champ.value retourne une STRING et non un ENTIER voir un FLOTTANT, donc...il faut convertir avant usage les comparaisons étant faite sur des nombres


var Perte   = parseFloat(form.perte.value); // conversion en flottant
var Taille  = parseFloat(form.taille.value);
// etc...pour les autres données à manipuler..




et moi qui pensais qu'il s'agissait d'un problème d'encapsulage de if, je lirais dorénavant le topic en plein.
PS : je me trompe peut être encore d'ailleurs...
 

;0)
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
18 oct. 2007 à 12:26
Désolée, je ne voulais pas te vexer.  J'ai essayé ce que tu m'a recommandé, mais sans succès.
Je suis sûre moi aussi que c'est un problème de cohérence mais je vois pas où il se trouve.

Mon script prend en compte 3 conditions pour calculer la réponse à donner : la Taille, le Sexe et la Perte.

La Taille et le Sexe sont saisis dans un formulaire (données non calculées), par contre, la Perte est calculée grâce à un autre script (qui marche). La Perte est calculée en fonction de la Taille et du Poids (données non calculées).

J'ai associé les 2 scripts à 2 boutons différents. Est-ce cela qui peut poser problème ?

Magali,
Perdue dans le code javascript
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
18 oct. 2007 à 17:12
Bonjour,
Vexé Oui d'avoir laissé cela mais pour le reste...
Ce qui a été écrit avant reste vrai concernant les données à manipuler, néanmoins tu peux affecter à un bouton une multitude de fonction du type

le plus clair étant pour des raison de lisibilité de mettre une fonction qui regroupe les autres




avec une fonction comme ceci
function Fct_Calculer( form_){
  Fct_1( form_);

  Fct_1( form_);

  Fct_1( form_);
...etc...

  Fct_n( form_);





}



Autre chose pendant que l'on y est, évite d'utiliser des mots reservés comme paramètre ou comme variable, IE et FireFox ne les interpréteront pas forcément de la même manière, voila le pourquoi de this.form en paramètre des fonctions.
A toi de jouer et de nous dire... 
 
 




;0)
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
22 oct. 2007 à 10:45
Bonjour,

Je suis arrivée à mes fins (enfin presque !) mais j'ai dû séparer mes 2 scripts. Ils fonctionnent, mais sur 2 pages différentes ... Sur la même page, il ya un conflit. OU ????

Bref, j'avance car mon patron me tanne.

J'ai encore une petite question. Comment arrondir mes résultats de calcul à 1 chiffre après la virgule ? A quel endroit de mon script (ci-dessous) je dois insérer cette fonction ? MERCI.

function poidsIdeal(form) {

  if (form.sexe.value==1) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/4 ;
     form.poidsmini.value = 20*(form.taille.value*form.taille.value)/10000 ;
     form.poidsmaxi.value = 25*(form.taille.value*form.taille.value)/10000 ;
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;
     form.commentaire.value = commente(form.imc.value) ;
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
  }
  if (form.sexe.value==2) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/2.5 ;
     form.poidsmini.value = 19*(form.taille.value*form.taille.value)/10000 ;
     form.poidsmaxi.value = 24*(form.taille.value*form.taille.value)/10000 ;
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;
     form.commentaire.value = commente(form.imc.value) ;
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
      }
}
function calculImc(form) {
   form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;
   }

A bientôt.

Magali,
Perdue dans le code javascript
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 16
22 oct. 2007 à 19:39
Bonjour,




il ya un conflit. OU ????


sans plus d'info, un lien ou le code pour voir, pas 3000 lignes quand même difficile de dire...

Comment arrondir mes résultats de calcul à 1 chiffre après la virgule ?


Pour arrondir un chiffre une des façons de procéder est l'utilisation de l'objet Math et de sa fonction round()

var Nombre = 125.46;                       // le nombre
var Resullt = Math.round( Nombre *10) /10; // une decimale
alert( Result);                            //affichage



à toi d'adapter...
 



;0)
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
23 oct. 2007 à 09:11
Merci.

Bon, ce que j'ai écrit ne marche pas. Mon script ne marche plus du tout. J'ai dû faire des erreurs : où ?

function poidsIdeal(form) {

  if (form.sexe.value==1) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/4 ;
     var poidsID = form.poidsID.value ;
     var Result = Math.round(poidsID*10)/10 ;
     alert(Result) ;
     
     form.poidsmini.value = 20*(form.taille.value*form.taille.value)/10000 ;
     var poidsmini = form.poidsmini.value ;
     var Result = Math.round(poidsmini*10)/10 ;
     alert(Result) ;
     
     form.poidsmaxi.value = 25*(form.taille.value*form.taille.value)/10000 ;
     var poidsmaxi = form.poidsmaxi.value ;
     var Result = Math.round(poidsmaxi*10)/10 ;
     alert(Result) ;
     
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;
     var imc = form.imc.value ;
     var Result = Math.round(imc*10)10 ;
     alert(Result) ;
     
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
     var maxiperte = form.maxiperte.value ;
     var Result = Math.round(maxiperte*10)10 ;
     alert(Result) ;
     
     form.commentaire.value = commente(form.imc.value) ;
  }
  if (form.sexe.value==2) {
     form.poidsID.value = (form.taille.value - 100) - (form.taille.value-150)/2.5 ;
     var poidsID = form.poidsID.value ;
     var Result = Math.round(poidsID*10)/10 ;
     alert(Result) ;
     
     form.poidsmini.value = 19*(form.taille.value*form.taille.value)/10000 ;
     var poidsmini = form.poidsmini.value ;
     var Result = Math.round(poidsmini*10)/10 ;
     alert(Result) ;
     
     form.poidsmaxi.value = 24*(form.taille.value*form.taille.value)/10000 ;
     var poidsmaxi = form.poidsmaxi.value ;
     var Result = Math.round(poidsmaxi*10)/10 ;
     alert(Result) ;
     
     form.imc.value = form.poids.value * 10000/(form.taille.value*form.taille.value) ;
     var imc = form.imc.value ;
     var Result = Math.round(imc*10)10 ;
     alert(Result) ;
     
     form.maxiperte.value = (form.poids.value - form.poidsmini.value) ;
     var maxiperte = form.maxiperte.value ;
     var Result = Math.round(maxiperte*10)10 ;
     alert(Result) ;
     
     form.commentaire.value = commente(form.imc.value) ;
      }
}

Magali,
Perdue dans le code javascript
0
magalidelmas Messages postés 9 Date d'inscription lundi 15 octobre 2007 Statut Membre Dernière intervention 23 octobre 2007
23 oct. 2007 à 11:41
MERCI, ça marche ! Comme dirait l'autre "EUREKA" !

A bientôt.

Magali,
Perdue dans le code javascript
0