Ankündigung

Einklappen
Keine Ankündigung bisher.

Rechnung direkt aktuallisiert nach Eintrag

Einklappen

Neue Werbung 2019

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

  • Rechnung direkt aktuallisiert nach Eintrag

    Moin zusammen,

    ich habe folgendes Problem:
    Ich möchte gerne das bei einem Bestellformular direkt die Summe ausgerechnet wird.
    (also das ist nicht das Problem, das hab ich schon geschafft)
    aber eben die Zahlen nach dem Komma.

    Nehmen wir mal an ich habe 2 Preise (1.79 und 0.86) + Lieferpauschale (1.99)

    Wenn ich jetzt:
    - 3 x 1.79
    - 6 x 0.86
    - + 1.99
    nehme, dann kommt als Ergebniss diese "eklige" Zahl raus
    Zwischensumme -> 10.530000000000001 <- + 1.99 = Summe -> 12.520000000000001 <-

    Wie mach ich das, dass er jetzt nur 2 Zahlen nach dem Komma/Punkt rechnet und wenn er bei Bsp.: 10.539
    ankommt, dass er dann auch auf 10.54 Hochrundet ?????

    Mein Code aktuell als kleiner Ausschnitt:
    PHP-Code:
    echo"
    <form action="
    bestellung_bestaetigen.php" method="post" oninput="wert.value = (menge_1.value 1.79) + (menge_2.value 0.86); summe.value = (menge_1.value 1.79) + (menge_2.value 0.86) + 1.99">
    /*hier das typische (Anrede, Vor-Nachname, Straße etc.)*/
    <input type="
    checkbox" name="produkt_1" value="ok"><label>Produkt Name 1 (1.79 €)</label><input type="number" name="menge_1" value="0" required><br>
    <input type="
    checkbox" name="produkt_2" value="ok"><label>Produkt Name 2 (0.86 €)</label><input type="number" name="menge_2" value="0" required>
    <strong>Zwischensumme:</strong><output name="
    wert">0.00</output> €
    <strong>Zwischensumme:</strong> 1.99 €<br>
    <strong>Zwischensumme:</strong><output name="
    summe">0.00</output> €
    </form>
    "


  • #2
    .round und .toFixed
    hat allerdings nichts mit PHP zu tun....

    Kommentar


    • #3
      [MOD: Verschoben von PHP-Einsteiger]
      The string "()()" is not palindrom but the String "())(" is.

      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Stimmt auch wieder ... danke für Verschiebung, ist mir dann erst im nachhinein eingefallen das es ja eigentlich nur "HTML" ist :'D
        Dankeeeeee !

        Kommentar


        • #5
          Würde gerne kurz wissen wieso der das nicht weiter ausrechnet ?

          Habe den Code nun so verändert:
          HTML-Code:
          <form action="bestellung_bestaetigen.php" method="post" oninput="wert.value = (menge_1.value * 1.79) + (menge_2.value * 0.86); summe.value = (menge_1.value * 1.79) + (menge_2.value * 0.86) + 1.99; runden_funktion();">
          
          <!-- hier das typische (Anrede, Vor-Nachname, Straße etc.) -->
          
          <input type="checkbox" name="produkt_1" value="ok"><label>Produkt Name 1 (1.79 €)</label><input type="number" name="menge_1" value="0" required><br>
          <input type="checkbox" name="produkt_2" value="ok"><label>Produkt Name 2 (0.86 €)</label><input type="number" name="menge_2" value="0" required>
          <strong>Zwischensumme:</strong><output name="wert_fix">0.00</output><input type="hidden" name="wert">
          <strong>Zwischensumme:</strong> 1.99 €<br>
          <strong>Zwischensumme:</strong><output name="summe_fix">0.00</output><input type="hidden" name="summe">
          
          <script>
                                              function runden_funktion() {
                                                  var wert_to_fix = document.getElementById("wert").innerHTML;
                                                  var summe_to_fix = document.getElementById("summe").innerHTML;
          
                                                  var wert = Math.round(wert_to_fix);
                                                  var summe = Math.round(summe_to_fix);
          
                                                  document.getElementById("wert_fix").innerHTML = wert;
                                                  document.getElementById("summe_fix").innerHTML = summe;
                                              }
                                              </script>
          </form>
          Wieso rechnet er jetzt nicht mehr das Ergebnis aus ?

          Kommentar


          • #6
            Du versuchst mit HTML-Code zu rechnen. Das kann nicht funktionieren. .innerHTML liefert HTML-Code. Die Verwendung von innerHTML ist hier also Käse.

            Außerdem haben die Input-Felder "wert" und "summe" ja gar keine Werte.

            Und JavaScript-Code hat in HTML-Code nichts verloren. Schreibe JavaScript-Code ausschließlich in JavaScript-Dateien.

            Kommentar


            • #7
              ich sehe auch keine Id´s...

              Kommentar


              • #8
                Zitat von hellbringer Beitrag anzeigen
                Außerdem haben die Input-Felder "wert" und "summe" ja gar keine Werte.
                Klar haben sie Werte ... die bekommen diese durch "oninput=wert.value" sowie "summe.value" ... nun ja


                Zitat von kaminbausatz Beitrag anzeigen
                ich sehe auch keine Id´s...
                Habe auch id's dazu geschrieben, aber dies funktioniert auch nicht

                Kommentar


                • #9
                  Zitat von PlatinSecurity Beitrag anzeigen
                  Klar haben sie Werte ... die bekommen diese durch "oninput=wert.value" sowie "summe.value" ... nun ja
                  Dann schreib bitte überischtlichen JavaScript-Code nicht in HTML. Bei dem Durcheinander blickt man ja nur schwer durch.

                  Kommentar


                  • #10
                    Zitat von hellbringer Beitrag anzeigen

                    Dann schreib bitte überischtlichen JavaScript-Code nicht in HTML. Bei dem Durcheinander blickt man ja nur schwer durch.
                    Das "oninput Event" ist KEIN "JavaScript" :'D
                    Aber is auch egal ... ich suche jemanden, der mir erklärt wie ich das machen kann und nicht jemanden wie dich, der mich da
                    versucht zu Kritisieren ... lass mich doch das so anorden wie ich möchte und ich damit klar komme. GRAZIE

                    Und nun wäre ich für jede weitere HILFE dankbar.

                    Kommentar


                    • #11
                      Zitat von PlatinSecurity Beitrag anzeigen
                      Das "oninput Event" ist KEIN "JavaScript" :'D
                      Was sonst?

                      Zitat von PlatinSecurity Beitrag anzeigen
                      Aber is auch egal ... ich suche jemanden, der mir erklärt wie ich das machen kann und nicht jemanden wie dich, der mich da
                      versucht zu Kritisieren ... lass mich doch das so anorden wie ich möchte und ich damit klar komme. GRAZIE
                      Wenn DU was möchstest, dann solltest du dich an den anderen orientieren und nicht umgekehrt. Wenn du jemanden möchtest, der alles so macht wie du willst, dann erstelle ein Jobangebot.

                      Kommentar


                      • #12
                        Natürlich ist oninput Javascript oder was denkst Du was Du damit machst:
                        Code:
                        wert.value = (menge_1.value * 1.79) + (menge_2.value * 0.86); summe.value = (menge_1.value * 1.79) + (menge_2.value * 0.86) + 1.99; runden_funktion();
                        Du solltest schon wissen, was Du verwendest.
                        Alle Events auf HTML-Tags basieren i.d.R. auf JavaScript.
                        Competence-Center -> Enjoy the Informatrix
                        PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                        Kommentar


                        • #13
                          Math.round gibt eine ganze Zahl zurück....

                          Code:
                          console.log(2.28*1.1955);
                          console.log((Math.round(2.28*1.1955*100)/100).toFixed(2));

                          Kommentar


                          • #14
                            Für das Rechnen mit Währungen sollte man KEINE Fliesskommazahlen gebrauchen.
                            Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                            Kommentar

                            Lädt...
                            X