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';}