Autor Thema: JS - Variable addieren  (Gelesen 7406 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
JS - Variable addieren
« 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.

Linkback: https://www.shoppilot.net/pf/index.php?topic=1323.0
mfG
dobra

Offline ahe

  • Global Moderator
  • Sr. Member
  • *****
  • Beiträge: 435
  • Lob: 20
Re: JS - Variable addieren
« Antwort #1 am: November 10, 2009, 22:58:28 »
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

Offline dobra

  • Global Moderator
  • Hero Member
  • *****
  • Beiträge: 1353
  • Lob: 18
Re: JS - Variable addieren
« Antwort #2 am: November 11, 2009, 06:01:34 »
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';}
« Letzte Änderung: November 11, 2009, 08:14:56 von dobra »


xx
identifier über variable doppelt nutzen

Begonnen von connie

8 Antworten
8989 Aufrufe
Letzter Beitrag Mai 20, 2008, 13:31:56
von connie