Ersetzung von . und , funktioniert nicht

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • 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 ! ! !
    Zuletzt geändert von fritzje610; 27.01.2009, 09: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

    Kommentar


    • #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

      Kommentar


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

        Kommentar


        • #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

          Kommentar


          • #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

            Kommentar


            • #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

              Kommentar

              Lädt...
              X