Ergebnis 1 bis 7 von 7
  1. #1
    Scriptbeginner ist offline Grünschnabel
    registriert
    27-12-2013
    Beiträge
    7

    Euro-Zeichen und bedingte Berechnung

    Hallo zusammen,

    falls die Frage zu einfach sein sollte, entschuldige ich mich schon mal im Voraus. Ich habe mir ein Script zusammengebastelt, dass in einem Formular die Gesamtsumme für eine Bestellung berechnet. Das klappt soweit auch. Nun will ich aber zwei Dinge ergänzen und weiß leider nicht wie. Hier das Script:

    Code:
    function calculate()
    {
    
       QtyA = 0; TotA = 0;
    
       PrcA = 9.9; PrcB = 4.5;
    
    
    
       if (document.form.anzahl.value > "")
          { QtyA = document.form.anzahl.value };
       document.form.anzahl.value = eval(QtyA);
    
    
       TotA = QtyA * PrcA;
       document.form.gesamtpreis.value = dm(eval(TotA));
    
       Totamt = eval(TotA) + PrcB;
    
       document.form.gesamtsumme.value = dm(eval(Totamt));
    
    }
    1. Bei TotA und Totamt sollen mit Eurozeichen ausgegeben werden. Wie kann ich die Ausgabe um das Eurozeichen erweitern?
    2. Wenn der Wert für die Anzahl der zu bestellenden Exemplare (QtyA) 0 ist, soll sich die Gesamtsumme (Totamt) so berechnen, dass PrcB (das sind die Versandkosten) nicht hinzuaddiert wird. Totamt soll dann gleich null sein, also dem Wert von TotA entsprechen.

    Wäre für einen Tipp dankbar.

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Euro-Zeichen und bedingte Berechnung

    Wie sieht denn die Funktion dm() aus?

    Bei den Versandkosten musst du vorher mit einem if einfach abfragen, ob TotA ungleich Null ist.

    PS: schmeiß mal die ganzen eval Anweisungen raus. Die sind unnötig und potentiell gefährlich.
    Dafür solltest du bei der Zweisung von QtyA ein parseInt (immer mit Bases!) dazupacken.

    PPS: Du solltest dir wirklich angewöhnen bessere/aussagekräftigere Variablennamen zu verwenden...

  3. #3
    Scriptbeginner ist offline Grünschnabel
    registriert
    27-12-2013
    Beiträge
    7

    AW: Euro-Zeichen und bedingte Berechnung

    Hallo kkapsner,

    danke für die Info. Hatte es schon mal mit einer if-Anweisung probiert, aber da funktionierte es nicht. Nun klappt es aber. Habe vielleicht ne Klammer oder ä. übersehen. Nun fehlt noch das Eurozeichen bei der Ausgabe der Werte. Die dm-Funktion (display money soll das wohl heißen, habe ich auch nur gefunden) sieht wie folgt aus und die sorgt für die Nachkommastellen (glaube ich):

    Code:
    function dm(amount) 
    {
      string = "" + amount;
      dec = string.length - string.indexOf('.');
      if (string.indexOf('.') == -1)
      return string + '.00';
      if (dec == 1)
      return string + '00';
      if (dec == 2)
      return string + '0';
      if (dec > 3)
      return string.substring(0,string.length-dec+3);
      return string;
    }
    Ob es die Funktion zwingend braucht, weiß ich ehrlich gesagt, nicht. Habe das nur aus einem Tutorial übernommen, in dem ein Bestellformular mit Auto-Berechnung erstellt wurde.
    Kann man da irgendwo das Euro-Zeichen einbauen? Für den genauen Code wäre ich dankbar (also was genau wo hin soll).

    In Sachen Variablennamen hast Du sicher recht. Ich habe mir dieses Beispiel nur kopiert und auf meine Bedürfnisse angepasst ohne dabei die Namen zu ändern.

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.706

    AW: Euro-Zeichen und bedingte Berechnung

    Zitat Zitat von Scriptbeginner Beitrag anzeigen
    Kann man da irgendwo das Euro-Zeichen einbauen?
    Ja, z.B. mit document.form.gesamtpreis.value = dm(eval(TotA))+'€';
    Ein bisschen müsstest du dich schon mit Javascript beschäftigen, um das vernünftig zu gestalten.

  5. #5
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Euro-Zeichen und bedingte Berechnung

    @Scriptbeginner: OK - dann ist die Funktion dm komplett überflüssig, da
    Code:
    TotA.toFixed(2);
    exakt das gleiche macht.

    @mikdoe: in .value werden HTML-Entities nicht interpretiert. Es muss also
    Code:
    document.form.gesamtpreis.value = TotA.toFixed(2) + " \u20ac";
    heißen.

  6. #6
    Scriptbeginner ist offline Grünschnabel
    registriert
    27-12-2013
    Beiträge
    7

    AW: Euro-Zeichen und bedingte Berechnung

    @kkapsner.de

    Super. Klappt wunderbar. Habe Deine Tipps beherzigt und auch die eval-Anweisungen rausgenommen.

    Danke nochmal!!!

  7. #7
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.695

    AW: Euro-Zeichen und bedingte Berechnung

    Bitte - gern geschehen.

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 28-06-2012, 02:01
  2. Bedingte Select Einträge durch MySQL Datenbank
    Von martin082 im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 05-06-2008, 21:02
  3. bedingte Weiterleitung zur Startseite
    Von Martin..84 im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 05-04-2006, 12:01
  4. Euro-Zeichen in DHTML
    Von nd2000 im Forum JavaScript
    Antworten: 10
    Letzter Beitrag: 24-01-2006, 13:07
  5. bedingte Weiterleitung
    Von Iltis im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 30-05-2001, 17:38

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •