Gesamtpreis berechnen
jhjp
- javascript
0 Salokin0 jhjp
0 Marc Reichelt
Hallo Leute,
ich hab ein großes Problem mit JavaScript.
Ich möchte gerne einen Online-Shop programmieren, bei dem die ganzen Artikel in eine Variable (Array-Objekt) geschrieben werden.
Alles kein Problem, aber als ich den Gesamtpreis berechnen lassen wollte, kam ich einfach nicht weiter.
Ich hab schon alles versucht, das ganze SELFHTML durchforstet aber ich weiß net was ich falsch mach.
Bitte helft mir!!!
Hier ist der vereinfachte Quellcode:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
</head>
<body>
<script language="JavaScript" type="text/javascript">
<!--
//shopy ist die Variable in die die ganzen Artikel geschrieben werden
var shopy = "";
//Jetzt wird vereinfacht ein Artikel hinzugefügt
shopy += "Roggenbrot|2.50|1#";
//Roggenbrot ist die Bezeichnung; 2.50 ist der Preis; 1 ist die Menge
shopy += "Bretzel|0.80|1#";
//Ich möchte jetzt nur die Preise addieren.
//1. shopy wird aufgeteilt:
//# Zeiche wird entfernt
var shopy2 = shopy.substring(0, shopy.length -1);
//Jetzt wird shopy bei den # Zeichen verschnitten und in order abgespeichert
order = shopy2.split("#");
//Jetzt wird shopy bei den | Zeichen ein weiteres Mal verschnitten
// und in dem jeweiligen order abgespeichert
for(i in order) order[i] = order[i].split("|");
//Ich möchte jetzt also order[0][1] und order[1][1] addieren
//Die Variable für den Gesamtpreis wird definiert
var gpreis = "";
gpreis = order[0][1] + order[1][1];
//Der Gesamtppreis soll dann im Beispiel als alert ausgegeben werden
alert(gpreis);
//Problem: er zeigt nicht 3.30 sondern 2.500.80 an
//Was muss ich verändern, dass er mir die zwei werte addiert!?!?!?
//-->
</script>
</body>
</html>
Meiner Meinung nach müsste ich nur irgendwie dem Rechner sagen, dass es sich bei order[0][1] um eine
piep normale Zahl handelt. oder?
Schon mal Vielen Dank für eure Hilfe.
jhjp
Hi,
//Ich möchte jetzt also order[0][1] und order[1][1] addieren
gpreis = order[0][1] + order[1][1];
Damit addierst Du sie als String-Variable: "2.50" + "0.80" ist "2.500.80".
Was Du willst, ist dies:
gpreis = Number(order[0][1]) + Number(order[1][1])
Salokin
VIELEN DANK!!!!!!!
Jetzt funzts! Juhuuuuu
cu jhjp
Hi!
So wie ich das jetzt sehe addiert dein Programm nur die Strings und nicht die Zahlen:
String-Mode: "2.50" + "0.80" = "2500.80"
Number-Mode: 2.50 + 0.80 = 3.30 (Das ist das was du haben willst)
Da gibt's eine Funktion Number(), mit der es klappen müsste.
Deine Zeile heißt dann folgendermaßen:
----------
gpreis = Number(order[0][1]) + Number(order[1][1]);
----------
siehe auch: http://selfhtml.teamone.de/javascript/objekte/unabhaengig.htm#number
Viel Glück!
Marc Reichelt || http://www.marcreichelt.de/