Calcul de prix avec multiplicateur variable !!!

amuart Messages postés 3 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 16 février 2009 - 16 févr. 2009 à 14:48
@karamel Messages postés 1816 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 30 novembre 2022 - 16 févr. 2009 à 17:12
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>

    
        Nombre de produits,
        ,
        Prix à l'unité (degressif selon quantité),
        Prix total,
    
       
    ----

        ,
        ,
        ,
        ,
    
        

</html>

7 réponses

Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
16 févr. 2009 à 15:58
bonjour,
bah... "il suffit" de tester ! non ?

et au lieu de faire :  prixTotal=nombre * prix;
if ( nombre <= 49 ) prixTotal=nombre * prix * 0.4;
else { if ( nombre <=99 ) prixTotal=nombre * prix * 0.36;
         else { if ....
               }
       }
si j'ai compris....

bien sûr on pourrait mettre dans un tableau, faire une boucle...
mais bon, comme montré ça fonctionnerait et tu sauras faire

Cordialement[mon Site][M'écrire]Bul
0
@karamel Messages postés 1816 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 30 novembre 2022 145
16 févr. 2009 à 16:03
sans oublier &&

entre 50 et 99   >49 && <100
0
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
16 févr. 2009 à 16:10
ben non kazma ! ;o)
on commence par tester <= 49, le reste est obligatoirement >=50,
puis on teste <=99 , le reste est obligatoirement >= 100 !
if n<=49 ( ou < 50 ) ...
   else { if n<=99 ( ou < 100 )  ...
            else { if n<=199  ( ou < 200 ) ...
                    ....
                  }
          }
0
amuart Messages postés 3 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 16 février 2009
16 févr. 2009 à 16:35
merci pour votre aide.
@bul3. il suffit de tester effectivement mais je ne sais pas comment metre cela en forme avec le script deja existant :s

je vais tester ce soir avec vos éléments voir ce que ça donne et reviens vers vous

thanks ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bul3 Messages postés 4933 Date d'inscription samedi 1 juillet 2006 Statut Membre Dernière intervention 2 février 2015 14
16 févr. 2009 à 16:39
je t'ai dis comment faire
prend le temps de relire
0
amuart Messages postés 3 Date d'inscription lundi 16 février 2009 Statut Membre Dernière intervention 16 février 2009
16 févr. 2009 à 16:49
oui j 'ai vu merci :)
c'est pour cela que je disais plus bas que j allais tester ce soir ;)
0
@karamel Messages postés 1816 Date d'inscription vendredi 9 mai 2008 Statut Modérateur Dernière intervention 30 novembre 2022 145
16 févr. 2009 à 17:12
mais j'etait pas sur de mon coup a 100 % merci pour le rattrapage
0