Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/06/2011, 22h41   #1
Invité de passage
 
Inscription : mars 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 11
Points : 0
Points : 0
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 :
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
oitsuki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 22h55   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 774
Points : 4 774
Bonsoir,
regardes du coté de la fonction isNaN
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 23h14   #3
Invité de passage
 
Inscription : mars 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 11
Points : 0
Points : 0
J'ai essayé ceci mais cela ne fonctionne pas

Code :
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 :
1
2
  if (isNAN(marginValue)) marginValue = 0;
  document.getElementById('products_price_margins').innerHTML = marginValue + "%";


une solution serait le bienvenue.
oitsuki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 23h24   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 774
Points : 4 774
Attention à la casse isNaN et non isNAN.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 23h49   #5
Invité de passage
 
Inscription : mars 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 11
Points : 0
Points : 0
Merci beaucoup pour l'information mais cela ne résoud pas mon pb

Code :
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 :
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>
oitsuki est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/06/2011, 00h54   #6
Invité de passage
 
Inscription : mars 2011
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 11
Points : 0
Points : 0
problème résolu en partie avec la base de données.

merci pour tout
oitsuki est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h23.


 
 
 
 
Partenaires

Hébergement Web