if-Abfrage --- aber wenn ein anderer Wert höher ist - wie geht das?

yvonnesnoopy

Grünschnabel
Hallo,

ich weiss nicht genau, wie ich mein Problem benennen soll.

Ich habe eine js-Datei, die Versandkosten in einem einfachen Online-Shop nach Artikelanzahl berechnet.
Nun brauche ich eine etwas diffizielere Rechnung:

Beispiel:
Bei 1-6 Artikeln = 6,- Euro Versand
7-18 = 10 ,- Euro Versand
usw.

WENN aber der Auftragswert über 130,- Euro steigt = Versand kostenlos.

Setze ich das ebenfalls mit einem if-Befehl, wird es ignoriert und weiter nach Artikelanzahl berechnet....

Da ich nicht weiss, wie das in der Fachsprache heisst, konnte ich keine Lösung finden...

Vielen Dank schon einmal!
Yvonne
 
Wenn du doch bereits Code geschrieben hast, solltest du uns diesen auch zeigen...
Grundsätzlich ist das sehr simpel:

Javascript:
var shippingCosts;

if(totalSum > 130) {
	shippingCosts = 0;
} else if(numArticles < 7) {
	shippingCosts = 6;
} else if(numArticles < 19) {
	shippingCosts = 10;
} else .....
 
Hallo,

sorry, hatte ich vergessen.

Hier mein Code (den Teil der Berechnung):

Code:
 if(form._wh_anzfl.value >= 1) {
 versandk=6;
 }
 if(form._wh_anzfl.value >= 19) {
 versandk=12;
 }
 if(form._wh_anzfl.value >= 37) {
 versandk=18;
 }
 if(form._wh_anzfl.value >= 55) {
 versandk=24;
 }
 if(form._wh_anzfl.value >= 71) {
 versandk=30;
 }
 if(form._wh_anzfl.value >= 91) {
 versandk=36;
 }
 if(form._wh_anzfl.value >= 109) {
 versandk=42;
 }
 if(form._wh_betr.value >= 130) {
 versandk=0;
 }

Ganz unten bei "betr.value" soll halt bei über 130 Euro kein Versand berechnet werden.

Ich sehe schon, ich habe alles mit if gesetzt - das scheint nicht so richtig zu sein. Funktioniert aber prima bis hierhin.
 
Ach, sorry, jetzt sehe ich das bei CPoly erst richtig.
bei "if" der Gesamtpreis und über "else" Artikelanzahl. Werde ich mal so probieren.

Danke,
Yvonne
 
Habe es ausprobiert.
Jetzt berechnet er IMMER 6,- Euro Versand mit dieser Variante:

Code:
 if(form._wh_betr.value >= 130) {
 versandk=0;
 } else if(form._wh_anzfl.value >= 1) {
 versandk=6;
 } else if(form._wh_anzfl.value >= 19) {
 versandk=12;
 } else if(form._wh_anzfl.value >= 37) {
 versandk=18;
 } else if(form._wh_anzfl.value >= 55) {
 versandk=24;
 } else if(form._wh_anzfl.value >= 71) {
 versandk=30;
 } else if(form._wh_anzfl.value >= 91) {
 versandk=36;
 } else if(form._wh_anzfl.value >= 109) {
 versandk=42;
 }
 

 form._wh_versand.value = Format(versandk);



 gessum = result + versandk;


Dieses "var shippingCosts;" oder in meinem Fall "versandk" weiss ich nicht, wo und ob ich das einfügen muss?!



Danke für jede Hilfe!
Yvonne
 
Was Cpoly damit sagen will, ist das (form._wh_anzfl.value >= 1) auch bei 100 Artikel true ergibt und diese if Verzweigung damit endet.
 
Hallo,

habe jetzt den Code umgeschrieben.

Die Versandkostenberechnung funktioniert jetzt nach Anzahl der Artikel, aber noch nicht, wenn der Auftragswert (form._wh_betr.value) über 130 Euro beträgt (dann soll es 0,- Euro Versand kosten).

Irgendwie klappt das bei mir nicht :(

Hier der Code:

Code:
 if(form._wh_betr.value > 130) {
 versandk = 0;
 } else if(form._wh_anzfl.value < 19) {
 versandk = 6;
 } else if(form._wh_anzfl.value < 37) {
 versandk = 12;
 } else if(form._wh_anzfl.value < 55) {
 versandk = 18;
 } else if(form._wh_anzfl.value < 70) {
 versandk = 24;
 } else if(form._wh_anzfl.value < 90) {
 versandk = 30;
 } else if(form._wh_anzfl.value < 108) {
 versandk = 36;
 } else if(form._wh_anzfl.value < 109) {
 versandk = 42;
 }

Wäre super, wenn sich noch jemand "erbarmt", um mir zu helfen.
Vielen Dank schonmal.
Yvonne
 
Vermutung: Du hast es nur mit Komma-zahlen in form._wh_betr probiert. Allerdings ist form._wh_betr.value ein String. Bei Ganz-zahlen (die Anzahl) stört das nicht, weil

"1" > "0" === 1 > 0

allerdings bei Komma-zahlen

"1,0" < 2: FALSE


Du musst daraus erst eine Zahl machen.

Javascript:
parseFloat(form._wh_betr.value.replace(',', '.'))
 

Neue Beiträge

Zurück