RabattBerechnung
Adam
- javascript
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.
<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
Struppi.
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!!!!
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
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