JS - Variable addieren

Begonnen von dobra, November 10, 2009, 20:59:34

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

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.
mfG
dobra

ahe

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("&#128; ", "");
str = str.replace(".", "");
str = str.replace(",", ".");
return parseFloat(str);
}

var preis1 = '&#128; 11.990,00';
var preis2 = '&#128; 1.010,99';
document.writeln(makefloat(preis1) + makefloat(preis2));
</script>
MfG ahe

dobra

#2
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("&#128; ", "");
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 = '&#128; 0,00';}
mfG
dobra