Ersetzung von . und , funktioniert nicht

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ersetzung von . und , funktioniert nicht

    Hallo zusammen,

    das folgende Skript berechnet mir den aktuellen Gesamtpreis in Abhängigkeit von den eingegeben Werten im Formular. Das Ergebnis wird dann im iput-Feld gesamt_preis des Formulars angezeigt.
    Mein Problem ist nun, wie kriege ich, bevor es zur Ausgabe kommt, in der Variable gesamt den Punkt wieder in ein Komma ersetzt?
    Bei den Rechenparametern funktioniert es problemlos vom Komma in den Punkt zu konvertieren. Nur warum geht der Rückweg nicht mehr ???


    PHP Code:
    <script type="text/javascript">
    function 
    Rechnen()
    {
        var 
    glas document.getElementById("glas_preis").value;
        var 
    oberflaeche document.getElementById("oberflaeche_preis").value;
        var 
    toenung document.getElementById("toenung_preis").value;
        var 
    prismen document.getElementById("prismen_preis").value;
        var 
    zusaetze document.getElementById("zusaetze_preis").value;
        var 
    gesamt = (parseFloat(glas.replace(/,/g".")) + 
        
    parseFloat(oberflaeche.replace(/,/g".")) + 
        
    parseFloat(toenung.replace(/,/g".")) + 
        
    parseFloat(prismen.replace(/,/g".")) + 
        
    parseFloat(zusaetze.replace(/,/g".")));
        
        var 
    gesamt =  Math.round(gesamt 100) / 100;
        
    var 
    gesamt gesamt.replace(/./g","); // Das ist die Ersetzungszeile, dann funktioniert aber das ganze Skript nicht mehr 

        
    ges_preis document.getElementById("gesamt_preis");
        
    ges_preis.value gesamt;

    }
    </
    script

    Danke für eure Hilfe ! ! !
    Last edited by fritzje610; 27-01-2009, 08:38.
    Gruß

    Michael

  • #2
    PHP Code:
    gesamt.replace (...); 
    fehlt zum schluss noch.

    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Comment


    • #3
      Hatte ich vergessen zu posten. Ist jetzt mit drin, Zeile ist kommentiert.
      Allerdings gibt's dann vom Firebug folgende Meldung:

      gesamt.replace is not a function
      [Break on this error] var gesamt = gesamt.replace(/./g, ",");
      Gruß

      Michael

      Comment


      • #4
        Sag' mal, warum denn 3 x var gesamt innerhalb einer Funktion? Da sollst du dich nicht wundert, dass das Script nicht läuft.

        Comment


        • #5
          Stimmt, macht nicht wirklich Sinn, um nicht zu sagen ist völliger Quatsch. Das habe ich korrigiert. Hier nochmal der aktuelle Stand:

          PHP Code:
          <script type="text/javascript">
          function 
          Rechnen()
          {
              var 
          glas document.getElementById("glas_preis").value;
              var 
          oberflaeche document.getElementById("oberflaeche_preis").value;
              var 
          toenung document.getElementById("toenung_preis").value;
              var 
          prismen document.getElementById("prismen_preis").value;
              var 
          zusaetze document.getElementById("zusaetze_preis").value;
              var 
          gesamt = (parseFloat(glas.replace(/,/g".")) + 
              
          parseFloat(oberflaeche.replace(/,/g".")) + 
              
          parseFloat(toenung.replace(/,/g".")) + 
              
          parseFloat(prismen.replace(/,/g".")) + 
              
          parseFloat(zusaetze.replace(/,/g".")));
              
              
          gesamt =  Math.round(gesamt 100) / 100;
              
          gesamt gesamt.replace(/./g","); // Fehlerzeile !
              
              
          ges_preis document.getElementById("gesamt_preis");
              
          ges_preis.value gesamt;

          }
          </
          script
          Problem ist aber nach wie vor, dass er über die kommentierte Zeile stolpert. Die Fehlermeldung ist gleich geblieben.
          Gruß

          Michael

          Comment


          • #6
            Hallo,

            Fehler gefunden und Lösung auch direkt gefunden. Problem war, das gesamt ein Integer ist. replace kann darauf nicht angwendet werden.
            So war es zumindest in selfhtml dokumentiert.

            Lösung dazu. Aus dem Integer einen String machen und den dann mit replace entsprechend beackern.

            PHP Code:
            gesamt = new String(gesamt);
            gesamt gesamt.replace("."",");
            gesamt gesamt.replace(/\./g","); // So kannn man es auch schreiben 
            Gruß

            Michael

            Comment


            • #7
              gesamt ist eine Zahl, daher gibt es keine .replace Methode dafür. Du musst schon in String konvertieren, bevor du .replace anwenden kannst.

              EDIT:
              Du bist ja schon von selbst drauf gekommen

              Comment

              Working...
              X