Florian: Liste füllen lassen

Hallo zusammen,

Ich bin gerade dabei einen kleinen Taschenrechner zu implementieren und möchte nun die eingegebenen Rechnungen(also die Historie) als eine Liste ausgeben lassen. Die Liste ist angelegt aber wie kann ich die eingegebene Rechnung nun in die Liste übergeben?

Schon mal im Voraus Danke für die Hilfe

  1. Moin,

    Die Liste ist angelegt aber wie kann ich die eingegebene Rechnung nun in die Liste übergeben?

    Du wählst einfach ein Feld aus deiner Liste aus und weist diesem die entsprechende Rechnung zu ;)

    Grüße Marco

    --
    Ich spreche Spaghetticode - fließend.
  2. Lieber Florian,

    wie kann ich die eingegebene Rechnung nun in die Liste übergeben?

    wie bist Du bisher vorgegangen (Code?) und was daran erfüllt noch nicht Deine Ansprüche?

    Liebe Grüße,

    Felix Riesterer.

    --
    "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
  3. Das ist mein bisheriger Code. Nun möchte ich, dass in die ol(weit am Ende des Codes) die Rechnung die ich in den Taschenrechner eingegeben habe aufgeführt wird. Ich habe es schon mit createElement() und auch mit appendChild() probiert hatte jedoch keinen Erfolg.

    <!DOCTYPE html>
    <html>
    <head>
    <link type =”text/css” rel=”stylesheet” href=”stylesheet.css”/>
        <title> Taschenrechner </title>
    <script type="text/javascript">
    function calculate()
    {
    wert1 = parseFloat(document.TaschenrechnerFormular.Eingabe1.value);
    wert2 = parseFloat(document.TaschenrechnerFormular.Eingabe2.value);
    var erg;
    if(document.TaschenrechnerFormular.Auswahl.value === "PLUS"){
    erg = wert1 + wert2;
    document.TaschenrechnerFormular.Ergebnis.value = erg;
    } else if(document.TaschenrechnerFormular.Auswahl.value === "MINUS"){
    erg = wert1 - wert2;
    document.TaschenrechnerFormular.Ergebnis.value = erg;
    } else{
    erg = Math.pow(wert1, wert2);
    }
    }
    </script>
    </head>
    <body>
      <h1> Aufgabe 1 </h1>
      <form name="TaschenrechnerFormular" action="calculate()">
      <input name="Eingabe1" type="number" size="20" maxlenght="20" style="border: 1px dashed #008030;">
      <select name="Auswahl">
        <option value=" "> </option>
        <option value="PLUS">PLUS</option>
        <option value="MINUS">MINUS</option>
        <option value="POTENZ">POTENZ</option>
      </select>
      <input name="Eingabe2" type="number" size="20" maxlenght="20" style="border: 1px dashed #008030;">
      <p style="position: absolute; left: 200px; top:100px; right: 1380px;"> = </p>
      <input name="Ergebnis" type="Text" style="position: absolute; left: 130px; top:150px; right: 1380px;" size="20" maxlenght="20" readonly>
      <input type="reset" style="position: absolute; left: 10px; top:200px; right: 1380px;" value="Formular zurücksetzen">
      <input type="button" style="position: absolute; left: 300px; top:200px; right: 1380px;" value="absenden" onclick="calculate()">

    </form>
      <h2 style="position: absolute;top: 250px;"> Bisherige Berechnungen: </h2>
      <ol id="Historie" sytle="position: absolute;bottom: 1500px;">
      
      </ol>

    </body>
      </html>

    1. Lieber Florian,

      Das ist mein bisheriger Code.

      dieser wäre besser lesbar, wenn Du die entsprechende Formatierung einschalten würdest:

      function calculate()
      {
      wert1 = parseFloat(document.TaschenrechnerFormular.Eingabe1.value);
      wert2 = parseFloat(document.TaschenrechnerFormular.Eingabe2.value);
      var erg;
      if(document.TaschenrechnerFormular.Auswahl.value === "PLUS"){
      erg = wert1 + wert2;
      document.TaschenrechnerFormular.Ergebnis.value = erg;
      } else if(document.TaschenrechnerFormular.Auswahl.value === "MINUS"){
      erg = wert1 - wert2;
      document.TaschenrechnerFormular.Ergebnis.value = erg;
      } else{
      erg = Math.pow(wert1, wert2);
      }
      }

        
      Da sehe ich im Wesentlichen nichts, was "die Rechnung" irgendwie abbilden würde. Dafür sehe ich aber "Unarten" wie z.B. globale Variablen. Das wird bei komplexeren Seiten, auf denen verschiedene Scripte eingebunden werden sollen, eventuell problematisch!  
        
      Tipp: Deklariere alle Variablennamen ganz zu Beginn Deiner Funktion:  
        
      ~~~javascript
      function calculate() {  
          var erg, wert1, wert2;
      

      Desweiteren sehe ich nicht, warum Du die Variable "erg" überhaupt brauchst. Du kannst doch den Schritt "v = wert; obj.value = v;" auch schneller schreiben: "obj.value = wert1 + wert2". Es könnte aber sein, dass Du den langen Begriff "document.TaschenrechnerFormular.Ergebnis" für das Ergebnisfeld in einer Variable "erg" zusammenfassen willst... siehe meinen Code nachher.

      Diese if-Verzweigungen wollen mir nicht so recht schmecken - ich bevorzuge bei diesem Fall das switch-Statement, da es hier um mehr als nur "ob oder nicht" geht:

      var erg = document.TaschenrechnerFormular.Ergebnis; // für kürzere Schreibweise  
        
      switch(document.TaschenrechnerFormular.Auswahl.value) {  
        
          case 'PLUS':  
              erg.value = wert1 + wert2;  
          break;  
        
          case 'MINUS':  
              erg.value = wert1 - wert2;  
          break;  
        
          default: // alle anderen Möglichkeiten  
              erg.value = Math.random() * 10000;  
          break;  
        
      }
      

      Du hast zwei Eingabefelder und einen Operator (Addition/Subtraktion/Multiplikation...). Das alles müsstest Du erst einmal in einen String zusammenfassen, der die konkrete Rechnung darstellt. Dann kann ich Dir dabei helfen, diesen Stringwert in Deine <ol>-Liste einzufügen.

      Liebe Grüße,

      Felix Riesterer.

      --
      "Wäre die EU ein Staat, der die Aufnahme in die EU beantragen würde, müsste der Antrag zurückgewiesen werden - aus Mangel an demokratischer Substanz." (Martin Schulz, Präsident des EU-Parlamentes)
      1. Hallo Felix,

        danke für deine Antwort. Werde deinen Rat befolgen und mich dann nochmal hier im Forum melden.

        grüße Florian