Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Februar 07, 2012, 23:53:44

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5208 Beiträge in 1408 Themen von 330 Mitglieder
Neuestes Mitglied: spraytool
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  Ajax Fragen (Moderator: dobra)
| | | |-+  JS - Variable addieren
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: JS - Variable addieren  (Gelesen 1547 mal)
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« 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.
Gespeichert

ahe
Global Moderator
Sr. Member
*****

Lob: 19
Offline Offline

Beiträge: 399


« 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  Cool

Code:
<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>
Gespeichert

MfG ahe
dobra
Global Moderator
Hero Member
*****

Lob: 18
Offline Offline

Beiträge: 1167


WWW
« 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)

Code:
....
....
        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  Sad

Nachtrag:
hab's doch noch rausgefunden  Smiley
so geht's
if (resultCross1_preis = 'undefined') {resultCross1_preis = '&#128; 0,00';}
« Letzte Änderung: November 11, 2009, 08:14:56 von dobra » Gespeichert

Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS