IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Simulateur de pseudo calories (débutant)


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 26
    Par défaut Simulateur de pseudo calories (débutant)
    Bonjour à tous,

    Mon script ne marche pas du tout ! Pourriez-vous me dire où est-ce que j'ai boggé ?!?
    Je cherche "juste" à faire des additions et à afficher le résultat dans un alert (pour l'instant)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
           <script type="text/javascript">
    function calculer() {
    var valCalories=0 ;
     
    document.simulateur.patates[0].checked ? valCalories+=450 ;
    document.simulateur.carottes[0].checked ? valCalories+=120 ;
    if (document.simulateur.courges[0].checked) valCalories+= 250 ;
    if (document.simulateur.oignons[0].checked) valCalories+=100 ;
    if (document.simulateur.poireaux[0].checked) valCalories+=150 ;
    if (document.simulateur.sel[0].checked) valCalories+=30 ;
     
     alert("Votre total est de: " + valCalories + "pseudo calories!");
     
    }
           </script>
     
      </head>
      <body>
        <form name="simulateur">
    <p><b>Le premier simulateur de soupe !</b></p>
    <p>Mettrez-vous des pommes de terre dans votre soupe ? <br>
    <input type="radio" name="patates" value="0" checked> Oui
    <input type="radio" name="patates" value="1"> Non </p>
    <p>Mettrez-vous des carottes dans votre soupe ? <br>
    <input type="radio" name="carottes" value="0" checked> Oui
    <input type="radio" name="carottes" value="1"> Non </p>
    <p><b>Options</b></p>
    <input type="checkbox" name="courges" value="0"> Ajouter des courges ? <br>
    <input type="checkbox" name="oignons" value="1"> Ajouter des oignons ? <br>
    <input type="checkbox" name="poireaux" value="2"> Ajouter des poireaux ? <br>
    <input type="checkbox" name="sel" value="3"> Ajouter du sel ? <br>
    <p><input type="button" value="Calculer" onclick="calculer()"></p>
    </form>
      </body>
    </html>
    D'avance merci.

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.simulateur.patates[0].checked ? valCalories+=450 ;
    Comme son nom l'indique, l'opérateur ternaire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test ? code_si_vrai : code_si_faux;
    Nécessite 3 éléments : le test à réaliser, le résultat si le test est vérifié et le résultat si le test échoue.
    Si tu enlèves un des éléments, ça provoque une erreur !

    A part ça,
    Mon script ne marche pas du tout !
    c'est pas très explicite pour décrire ce qui ne va pas
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Autre syntaxe possible:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.simulateur.patates[0].checked && valCalories+=450 ;
    le second membre ne sera interprété que si le premier est vrai
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 26
    Par défaut
    Merci Bovino,

    J'ai fait la modif de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    document.simulateur.patates[0].checked ? valCalories+=450 :  valCalories+=0 ;
    document.simulateur.carottes[0].checked ? valCalories+=120 :  valCalories+=0;
    mais ça ne change rien. Pas d'erreur non plus $!?

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par QuienSabe Voir le message
    Pas d'erreur non plus $!?
    Si ! Avec Firebug :
    document.simulateur.courges[0] is undefined
    Si tu n'as qu'un seul élément dont le name est courges,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.simulateur.courges
    renvoie cet élément, pas une collection.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    function calculer() {
    var valCalories=0 ;
     
    document.simulateur.patates[0].checked ? valCalories+=450 : valCalories+= 0 ;
    document.simulateur.carottes[0].checked ? valCalories+=120 : valCalories+= 0;
    if (document.simulateur.courges.checked) valCalories+= 250 ;
    if (document.simulateur.oignons.checked) valCalories+=100 ;
    if (document.simulateur.poireaux.checked) valCalories+=150 ;
    if (document.simulateur.sel.checked) valCalories+=30 ;
     
     alert("Votre total est de: " + valCalories + "pseudo calories!");
     
    }
    Fonctionne
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Il n'y a de collection que si plusieurs elements portent le même name
    donc pour oignons courges sel pas de [0]

    pour la première ligne j'ai mis en exemple une syntaxe plus stricte ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script type="text/javascript">
    function calculer() {
    var valCalories=0 ;
    document.forms['simulateur'].elements['patates'][0].checked && (valCalories +=450) ;
    document.simulateur.carottes[0].checked && (valCalories +=120) ;
    document.simulateur.courges.checked && (valCalories +=250) ;
    document.simulateur.oignons.checked && (valCalories +=100) ;
    document.simulateur.poireaux.checked && (valCalories +=150) ;
    document.simulateur.sel.checked && (valCalories +=30) ;
     
     alert("Votre total est de: " + valCalories + " pseudo calories!");
     
    }
     </script>
     
      </head>
      <body>
        <form name="simulateur">
    <p><b>Le premier simulateur de soupe !</b></p>
    <p>Mettrez-vous des pommes de terre dans votre soupe ? <br>
    <input type="radio" name="patates" value="0" checked> Oui
    <input type="radio" name="patates" value="1"> Non </p>
    <p>Mettrez-vous des carottes dans votre soupe ? <br>
    <input type="radio" name="carottes" value="0" checked> Oui
    <input type="radio" name="carottes" value="1"> Non </p>
    <p><b>Options</b></p>
    <input type="checkbox" name="courges" value="0"> Ajouter des courges ? <br>
    <input type="checkbox" name="oignons" value="1"> Ajouter des oignons ? <br>
    <input type="checkbox" name="poireaux" value="2"> Ajouter des poireaux ? <br>
    <input type="checkbox" name="sel" value="3"> Ajouter du sel ? <br>
    <p><input type="button" value="calculer" onclick="calculer()"></p>
    </form>
      </body>
    </html>
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Il n'y a de collection que si plusieurs elements portent le même name
    donc pour oignons courges sel pas de [0]

    pour la première ligne j'ai mis en exemple une syntaxe plus stricte ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <script type="text/javascript">
    function calculer() {
    var valCalories=0 ;
    document.forms['simulateur'].elements['patates'][0].checked && (valCalories +=450) ;
    document.simulateur.carottes[0].checked && (valCalories +=120) ;
    document.simulateur.courges.checked && (valCalories +=250) ;
    document.simulateur.oignons.checked && (valCalories +=100) ;
    document.simulateur.poireaux.checked && (valCalories +=150) ;
    document.simulateur.sel.checked && (valCalories +=30) ;
     
     alert("Votre total est de: " + valCalories + " pseudo calories!");
     
    }
     </script>
     
      </head>
      <body>
        <form name="simulateur">
    <p><b>Le premier simulateur de soupe !</b></p>
    <p>Mettrez-vous des pommes de terre dans votre soupe ? <br>
    <input type="radio" name="patates" value="0" checked> Oui
    <input type="radio" name="patates" value="1"> Non </p>
    <p>Mettrez-vous des carottes dans votre soupe ? <br>
    <input type="radio" name="carottes" value="0" checked> Oui
    <input type="radio" name="carottes" value="1"> Non </p>
    <p><b>Options</b></p>
    <input type="checkbox" name="courges" value="0"> Ajouter des courges ? <br>
    <input type="checkbox" name="oignons" value="1"> Ajouter des oignons ? <br>
    <input type="checkbox" name="poireaux" value="2"> Ajouter des poireaux ? <br>
    <input type="checkbox" name="sel" value="3"> Ajouter du sel ? <br>
    <p><input type="button" value="calculer" onclick="calculer()"></p>
    </form>
      </body>
    </html>
    Il me plait bien ton code Spaffy !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Tu m'as devancé Beef
    Avec deux doigts en moins je tapes moins vite
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 26
    Par défaut
    Merci à tous pour vos réponses, c'est nettement plus clair pour moi, maintenant

    Juste une question concernant la syntaxe plus stricte de la première ligne dans l'exemple de SpaceFrog.
    Est-ce par souci de compatibilité multi browsers ?

    Et puis aussi, comment je fais pour mettre "Résolu" ? Je vois pas le bouton ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 26
    Par défaut
    Oups ! J'ai trouvé le bouton Résolu
    Il fallait d'abord envoyer la réponse pour le voir

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/05/2015, 13h14
  2. Réponses: 2
    Dernier message: 08/07/2010, 11h00
  3. Pseudo code débutant
    Par domdd dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/04/2009, 18h16
  4. Pseudo-frames : question de débutant
    Par Elodie2109 dans le forum Langage
    Réponses: 8
    Dernier message: 05/12/2007, 12h34
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo