[Javascript] calcul de prix avec multiplicateur variable !!!

calcul de prix avec multiplicateur variable !!! [Javascript] - HTML/CSS - Programmation

Marsh Posté le 16-02-2009 à 13:29:01    

salut,  
 
bon je précise d'avance que j ai cherché avant de venir poser la question mais la je sèche pas mal.
 
j'ai le script ci desous qui me permet de multiplier une quantité donnée par un prix unitaire(multiplicateur) pour obtenir un prix total.  
 
le "problème" est que ce prix unitaire(multiplicateur) est amené à varier en fonction de la quantité. (prix degressifs)
et j'aimerais que le script puisse modifier de lui même le prix unitaire(multiplicateur) quand il détecte que la quantitée saisie est supérieur à tel chiffre.
 
ex:
 
( sachant que le "prix" est le prix unitaire,  "nombre" est la quantité )
 
si "nombre" inférieur ou égal à 49 alors "prix" =0.40
si "nombre" entre 50 et 99 (inclus) alors "prix" =0.36
si "nombre" entre 100 et 199 (inclus) alors "prix" =0.35
si "nombre" entre 200 et 299 (inclus) alors "prix" =0.34
si "nombre" entre 300 et 499 (inclus) alors "prix" =0.33
si "nombre" entre 500 et 999 (inclus) alors "prix" =0.30
si "nombre" supérieur a 1000 (inclu) alors "prix" =0.28
 
apparement la fonction switchcase (http://www.commentcamarche.net/contents/javascript/jscond.php3) me permettrait de résoudre mon problème mais je ne sais pas comment appliquer cela sur mon script déja existant ci dessous.
 
help :)
 
 
_____________________________________________________
Page avec script
_____________________________________________________
 
 
<html>
<head>
<title>CALCUL</title>
<script type="text/javascript">
function calcul_prix(){
var dernierPrix = 0;
 for(i=1;i<10;i++){
  nombre=document.getElementById("nombre"+i).value;
  prix=document.getElementById("prix"+i).value;
  prixTotal=nombre * prix;
  dernierPrix = dernierPrix + prixTotal;
  document.getElementById("prix_total"+i).value=prixTotal;
  document.getElementById("fin" ).value=dernierPrix;
 }
}
 
 
</script>
 
</head>
<body>
<table>
 <thead>
  <td> Nombre de produits </td>
  <td></td>
  <td> Prix à l'unité (degressif selon quantité) </td>
  <td> Prix total </td>
 </thead>
        <tbody>
 <tr>
  <td><input type="text" size="3" class="nombre" id="nombre1" value="0" onchange="javascript:calcul_prix();" /></td>
  <td></td>
  <td><input type="text" size="3" disabled="disabled" value="0.40" id="prix1" /></td>
  <td><input type="text" size="4" readonly="readonly" id="prix_total1"/></td>
 </tr>
 </tbody>  
</table>
 
</body>
</html>
 

Reply

Marsh Posté le 16-02-2009 à 13:29:01   

Reply

Marsh Posté le 16-02-2009 à 16:01:21    

Dans le code, qui est montré, le prix vient d'un champ.
Mais on pourait effectivement le prendre dans un bareme.
 
Voici une solution possible :

for(i=1;i<10;i++){  
  nombre=Number(document.getElementById("nombre"+i).value);  
  if (nombre <= 49)
     prix = 0.40;
  else
  if (nombre <= 99)
     prix = 0.36;
  else
  if (nombre <= 199)
     prix = 0.35;
  else
  if (nombre <= 299)
     prix = 0.34;
  else
  if (nombre <= 499)
     prix = 0.33;
  else
  if (nombre <= 999)
     prix = 0.30;
  prixTotal= nombre * prix;  
  dernierPrix = dernierPrix + prixTotal;  
  document.getElementById("prix_total"+i).value=prixTotal;  
  document.getElementById("fin" ).value=dernierPrix;  
 }

Reply

Marsh Posté le 16-02-2009 à 16:56:54    

merci je teste ça en rentrant :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed