Adam: RabattBerechnung

Hallo,
ich berechne
Variable 1=10 Euro
Variable 2=20 Euro
Wenn nun der Betrag kleiner als 30 Euro ist + 5 Euro Versandkosten bei mehr als 50 Euro minus 10% Rabatt.

<script type="text/javascript" language="JavaScript">
<!--
Preis01 = 10;
Preis02 = 20;

function startCalc(){
  interval = setInterval("calc()",1);
}
function calc(){
  Wert1 = (Preis01 * document.autoSumForm.Anzahl01.value);
  Wert2 = (Preis02 * document.autoSumForm.Anzahl02.value);
  document.autoSumForm.Betrag01.value = Dezimalstellen(Wert1);
  document.autoSumForm.Betrag02.value = Dezimalstellen(Wert2);
  zwischen  =  (Wert01 * 1) + (Wert02 * 1);
  ergebnis = Dezimalstellen(zwischen)

if (ergebnis <= 30)
   ergebnis = ergebnis+10     // Weniger als 30 Euro + 10 Euro Versand
else
   if (ergebnis >= 50)
      ergebnis = ergebnis*0.90  // Glückwunsch Du bekommst 10% Rabatt
   else
      ;           // 3. Alternative: kein Rabatt

Das ganze Skript funktioniert allerdings wertet er die if Schleife nicht aus.
Die Javascript If-Schleife hat die Syntax
if (Variable rechenzeichen Wert)
Variable = variable rechenzeichen variable
else
weitere Schleifen.

  1. <script type="text/javascript" language="JavaScript">
    <!--

    Der HTML Kommentar und das Attribut language sind heutzutage unnötig.

    function calc(){
      Wert1 = (Preis01 * document.autoSumForm.Anzahl01.value);
      Wert2 = (Preis02 * document.autoSumForm.Anzahl02.value);

    Du solltest auf globale Variabeln verzichten, das ist sehr schlechter Programmierstil - auch wenn es in diesem Fall nichts ausmacht.

    ergebnis = Dezimalstellen(zwischen)

    if (ergebnis <= 30)
       ergebnis = ergebnis+10     // Weniger als 30 Euro + 10 Euro Versand
    else
       if (ergebnis >= 50)
          ergebnis = ergebnis*0.90  // Glückwunsch Du bekommst 10% Rabatt
       else
          ;           // 3. Alternative: kein Rabatt

    Warum verzichtest du hier völlig auf Strichpunkte?

    Das ganze Skript funktioniert allerdings wertet er die if Schleife nicht aus.

    Woher weißt du das? Hast du dir die Werte von ergebnis ausgeben lassen?

    Die Javascript If-Schleife hat die Syntax

    if-schleife?

    Struppi.

    1. Danke!
      Ich habe die falsche Variable genommen.

      Ich habe mit Variable Zwischen und Ergebnis hantiert

      Wenn aber in Variable Ergebnis noch nichts ist, weil Ergebnis die Summe aus zwischen1 und zwischen2 ist kann das nicht klappen.

      Merke: Vorher lesen, vorher denken, erst dann posten!!!!

  2. Zuallererst: if-Abfragen sind keine Schleifen. Des weiteren ist die Syntax schlicht:

    if (Bedingung) Befehlssatz

    Die Bedingung kann dabei auch eine Operation mit einem Vergleichsoperator sein. Was immer Bedingung ist, wird dabei als Boolean (true/false) bewertet und nur wenn es true ist, der Befehlssatz ausgeführt.

    An Deiner Stelle würde ich mir mit einem alert das Ergebnis der Bedingung und dann, wenn es regelmäßig false ist, die einzelnen Parameter des Vergleichs ausgeben lassen. Ich vermute, der Fehler liegt in der Funktion "Dezimalstellen".

    Gruß, LX

    --
    RFC 1925, Satz 2: Egal, wie fest man schiebt, ganz gleich, wie hoch die Priorität ist, man kann die Lichtgeschwindigkeit nicht erhöhen.
  3. Hi,

    ich berechne
    Variable 1=10 Euro
    Variable 2=20 Euro
    Wenn nun der Betrag kleiner als 30 Euro ist + 5 Euro Versandkosten bei mehr als 50 Euro minus 10% Rabatt.

    Das machst du aber hoffentlich auch noch serverseitig, und clientseitig per JavaScript nur als optionales Komfort-Extra?

    Sonst gebe ich mir meinen Rabatt nämlich großzügig selber.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]