Shopsystem ShopPilot
ShopPilot => SSP - Shop Server Pages => Ajax Fragen => Thema gestartet von: dobra am November 10, 2009, 20:59:34
-
Hallo,
ich möchte mit js Variable addieren die aber formatiert gespeichert sind
$result{_cross1_preis} = main::fp($xpreis);
$result{_cross1_preis} =~ s/€/€/gs;
also resultGpreis = € 11.990,00 usw
mit
var resultTotal = parseInt(resultGpreis) + parseInt(resultCross1_preis) + parseInt(resultCross2_preis);
bekomme ich "NaN"
Habe schon ne ganze weile gegoogelt aber keine Lösung (oder nicht den richtigen Suchbegriff) gefunden.
-
Hallo dobra,
die folgende Umrechnungsfunktion ist mit Sicherheit nicht die eleganteste Möglichkeit, aber es sollte seinen Zweck erfüllen 8)
<script type="text/javascript">
function makefloat(str) {
str = str.replace("€ ", "");
str = str.replace(".", "");
str = str.replace(",", ".");
return parseFloat(str);
}
var preis1 = '€ 11.990,00';
var preis2 = '€ 1.010,99';
document.writeln(makefloat(preis1) + makefloat(preis2));
</script>
-
Hallo ahe,
Danke für das Beispiel!
aber wenn ich das in die HTML-Vorlage schreibe, meldet die Konsole "resultGpreis is not defined"
schreibe ich's SO in die ajax_config.js (in der ja die var's definiert werden)
....
....
var resultGpreis = data['_grundpreis'];
var resultCross1_preis = data['_cross1_preis'];
var resultCross2_preis = data['_cross2_preis'];
var resultCross3_preis = data['_cross3_preis'];
function makefloat(str) {
str = str.replace("€ ", "");
str = str.replace(".", "");
str = str.replace(",", ".");
return parseFloat(str);
}
var resultTotal = makefloat(resultGpreis) + makefloat(resultCross1_preis) + makefloat(resultCross2_preis) + makefloat(resultCross3_preis);
document.getElementById("total").innerHTML = "<b>" + resultTotal + "</b>";
....
würde es funktionieren, wenn's schon ALLE Variablen gibt.
Die werden ja aber erst nach und nach abgespeichert
= im ersten Schritt gibt's nur "resultGpreis", bei Schritt 2 "resultGpreis + resultCross1_preis" usw
-> es wird nicht nur *nichts* ausgegeben, sondern auch keine ajax-Antworten mehr zurückgegeben wenn eine der var's (noch) nicht existiert.
Ich würde da also sowas wie
if (!length(resultCross1_preis)) {..
brauchen, komme aber nicht drauf, wie ich das in JS schreiben muss :(
Nachtrag:
hab's doch noch rausgefunden :)
so geht's
if (resultCross1_preis = 'undefined') {resultCross1_preis = '€ 0,00';}