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

  1. #21
    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
    Citation Envoyé par SpaceFrog Voir le message
    je pense que tu n'as pas du lire mon code précédent
    Ah, j'ai compris, on parle pas du même post ! Moi je fais référence au post n°13.
    Ce code est le même que le source dans le 13...

  2. #22
    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
    Ouf ! J'ai compris et trouvé grâce à l'intervention d'Algori qui explique la fonction eval().
    Quelle galère pour la simple addition de deux variables implicitements numériques
    Bref, pour d'autres débutants qui passeraient par là, et pour leur éviter des pertes de temps inutiles, le script final donne ceci:
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
    <script type="text/javascript">
    function calculer() {
    var valCalories= 0;
    var valLouches= 0;
    var newVal = 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) ;
    valCalories = eval(valCalories); // On s'assure d'avoir un nombre
     
    valLouches = document.forms['simulateur'].elements['nbrLouches'].value ;
    valLouches = eval(valLouches);  // On s'assure d'avoir un nombre
    newVal = eval(valCalories+valLouches) ;
     
     alert("Votre total est de: " + newVal + " pseudo calories pour une assiette !");
     
    }
     </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><b>Sélectionnez le nombre de louches par assiette</b></p>
          <select name="nbrLouches" size="1">
          <option value="50" id="1" selected="selected">1</option>
          <option value="90" id="2">2</option>
          <option value="130" id="3">3</option>
          <option value="185" id="4">4</option>
          <option value="245" id="5">5</option>
          <option value="280" id="6">6</option>
          </select>
          <p><input type="button" value="calculer" onclick="calculer()"></p>
        </form>
      </body>
    </html>
    Bon dev à tous

  3. #23
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    valLouches = eval(valLouches);





    je confirme tu n'as pas lu mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    valLouches = +valLouches;
     ou 
    valLouches = valLouches *1 ;
    ou eventuellement un parseInt ou parseFloat

    mais pitié pas de éval pour ça !!!!!
    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. #24
    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
    Citation Envoyé par SpaceFrog Voir le message
    mais pitié pas de éval pour ça !!!!!
    Désolé SpaceFrog, mais au point ou j'en suis arrivé, la pitié n'est plus de mise ! Maintenant, le premier qui touche à mon cher, à mon précieux, que dis-je ! à mon merveilleux eval(), je le mords

  5. #25
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Arf on vient encore d'en perdre un du coté obscur

    il te plait pas le + ???
    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 !

  6. #26
    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
    Citation Envoyé par SpaceFrog Voir le message
    il te plait pas le + ???
    Sûr qu'il me plaît pas ! Je m'en méfie comme de la peste d'un + pareil qui, selon ses humeurs, agit en & de concaténation comme d'autres langages...
    Mais bon, je veux bien faire un effort si tu m'expliques ce que ça change ?
    Ou avec un exemple du code final remanié selon tes critères pour voir la différence.
    Mais faudra me convaincre

  7. #27
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    premièrement eval te bouffe de la ressoucre inutilement

    ou
    est moins gourmand et te retourne imanquablement du numérique


    de plus eval est une porte ouverte à l'injection de javascript
    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 !

  8. #28
    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
    Bien, bien, bien, je vais réfléchir à tout cela, j'ai encore tant à apprendre...

    Bon dev à tous

  9. #29
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    @QuienSabe : eval is evil, comme la peste l’éviter tu dois. C’est une erreur que font tous les débutants, je l’ai faite moi-même (dans un autre langage certes) mais plus tôt on l’oublie mieux c’est.

    @SpaceFrog : j’ai toujours trouvé plus lisible de faire un cast, mais puisqu’on parle d’optimisation, j’ai fait un petit test :
    Code js : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function speedTest( f ) {
    	var d = new Date();
    	for (var i = 1e7; i--;) {
    		f();
    	};
    	return (new Date() - d) / 1000 + 's';
    };
     
    function cast() { return Number('42') };
    function positivize() { return +'42' };
    function multiply() { return '42'*1 };

    Code console : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> speedTest(cast)
    "61.239s"
    >>> speedTest(positivize)
    "15.54s"
    >>> speedTest(multiply)
    "11.327s"

    multiply vainqueur par KO
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  10. #30
    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
    Entendu Watilin, c'est bien noté concernant eval().
    Eval ? J'ai dit "eval", comme c'est bizarre

    Merci à tous!

    PS: Y a-t-il une section "Débutants" quelque part dans le forum ?
    J'ai bien vu les tutoriels et la FAQ (qui sont très bien), mais les questions de débutants sont une mine d'enseignements pour moi (à faire, ne pas faire, éviter, à fuir, etc. en disent long)...

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

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