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 :

Aide pour un débutant formule de calcul


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Par défaut Aide pour un débutant formule de calcul
    Bonjour,

    je suis un peu nul en javascript, je dois faire un calcul de marge.

    voici ma fonction

    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
    function updateMargin() {
     
      var grossValue = document.forms["new_product"].products_price.value; // valeur net du prix
      var costValue = document.forms["new_product"].products_cost.value; // cout d'achat
      var handlingValue = document.forms["new_product"].products_handling.value; // manutention ou autres frais
     
     
      if (costValue == NaN) costValue=0;
      if (handlingValue == NaN) handlingValue=0;
     
      marginValue =  100 - ((    ((parseInt(costValue) + parseInt(handlingValue))       ) /  parseInt(grossValue)) * 100);
     
      if (marginValue == NaN) marginValue=0;
     
     
      document.getElementById('products_price_margins').innerHTML = marginValue + "%";
     
     
    }
    problème :

    Si costValue est vide ou rempli la valeur marginValue = NaN
    Si handlingValue est vide ou rempli la valeur marginValue = NaN
    Si handlingValue et costValue sont rempli alors le calcul se fait correctement

    Pourriez vous m'aider à résoudre ce problème ?

    merci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Bonsoir,
    regardes du coté de la fonction isNaN

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Par défaut
    J'ai essayé ceci mais cela ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      if (isNAN(costValue)) costValue=0;
      if (isNAN(handlingValue)) handlingValue=0;
     
      marginValue =  100 - ((( parseInt(costValue) + parseInt(handlingValue)) /  parseInt(grossValue)) * 100);
      document.getElementById('products_price_margins').innerHTML = marginValue + "%";
    J'ai aussi essayé ceci fonctionne pas non plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      if (isNAN(marginValue)) marginValue = 0;
      document.getElementById('products_price_margins').innerHTML = marginValue + "%";


    une solution serait le bienvenue.

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 209
    Par défaut
    Attention à la casse isNaN et non isNAN.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Par défaut
    Merci beaucoup pour l'information mais cela ne résoud pas mon pb

    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
     
    function updateMargin() {
     
      var grossValue = document.forms["new_product"].products_price.value; // valeur net du prix
      var costValue = document.forms["new_product"].products_cost.value; // cout d'achat
      var handlingValue = document.forms["new_product"].products_handling.value; // manutention ou autres frais
     
     
      if (isNaN(costValue)) costValue=0;
      if (isNaN(handlingValue)) handlingValue=0;
     
      marginValue =  100 - ((( parseInt(costValue) + parseInt(handlingValue)) /  parseInt(grossValue)) * 100);
     
      document.getElementById('products_price_margins').innerHTML = marginValue + "%";  
    }
    le isNan apparait toujours et je suis obligé de remplir les 2 champs pour que le calcul se fasse correctement.

    Voici un autre élément qui peut être aider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
                        <tr>
                          <td class="main"><?php echo TEXT_PRODUCTS_COST; ?></td>
                          <td class="dataTableContent"><?php echo tep_draw_input_field('products_cost', $pInfo->products_cost, 'OnKeyUp="updateMargin()" size="12"') . '<strong>' . TEXT_PRODUCTS_PRICE_NET . '</strong>';  ?></td>
    			        </tr>					
                        <tr>
                          <td class="main"><?php echo TEXT_PRODUCTS_HANDLING; ?></td>
                          <td class="dataTableContent"><?php echo tep_draw_input_field('products_handling', $pInfo->products_handling, 'OnKeyUp="updateMargin()" size="12"') . '<strong>' . TEXT_PRODUCTS_PRICE_NET . '</strong>';  ?></td>
    			        </tr>					
                        <tr>
                          <td class="main"><?php echo TEXT_PRODUCTS_PRICE_MARGINS; ?></td>
                          <td class="dataTableContent"><?php echo tep_draw_separator('pixel_trans.gif', '24', '15') . ' ' ?><span id='products_price_margins'></div></td>
    			        </tr>

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2011
    Messages : 131
    Par défaut
    problème résolu en partie avec la base de données.

    merci pour tout

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

Discussions similaires

  1. [PostgreSQL] [POSTGRES] Aide pour un débutant
    Par Tiolebucheron dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/11/2008, 08h45
  2. Aide pour un débutant
    Par Flow_75 dans le forum OpenGL
    Réponses: 3
    Dernier message: 13/07/2008, 18h34
  3. Besoin d'aide pour un débutant en procédure stockée
    Par el gringo dans le forum Débuter
    Réponses: 2
    Dernier message: 06/04/2006, 11h17
  4. De l'aide pour un débutant
    Par Abelkims dans le forum Débuter
    Réponses: 21
    Dernier message: 02/09/2005, 11h11
  5. De l'aide pour un débutant
    Par Abelkims dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 16/08/2005, 14h33

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