Java Ergebnis zusätzlich mit Selectbox Addieren

Hab mich verklickt >.< meine kleine Tochter sitzt nebenbei auf mein Schoß und hampelt hier rum :'D
 
Du kannst anstatt die Berechnung direkt im oninput-Event auszuführen dort eine Funktion aufrufen. Innerhalb der Funktion kannst Du dann so viele Berechnungen ausführen, wie Du magst.

Siehe auch: https://www.w3schools.com/jsref/event_oninput.asp

Ansonsten ist mir die Fragestellung nicht ganz klar. Den ausgewählten Wert einer Selectbox bekommst Du mit
Javascript:
var sb = document.getElementById("Id der Selectbox");
var sbtext = sb.options[sb.selectedIndex].text;  // angezeigter Text der SelectBox
var sbvalue = sb.options[sb.selectedIndex].value;  // Attribut Value der SelectBox
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: psYcho-edgE
Ich möchte halt die Value der Selectbox für das ausgewählte Text mit result4.value nur addieren, es soll dann auch sobald ich den Text ändere also zb ich von Kartoffeln (value 50) auf Bananen (value 100) umsteige, der das Ergebnis von result4 was vorher schon ausgerechnet wurde mit den Bananen oder Kartoffeln multipliziert, zb bei ein Ergebnis von 200, sollen die Bananen oder Kartoffeln hinzugerechnet werden und da hängt es bei mir
 
Zuletzt bearbeitet:
Ich habe es jetzt gerade wie folgt:


Leider rechnet es das nicht runter, auf zb 0.5, hab ich da irgendwo ein Denkfehler drin?
ES ist spät, vielleicht liegt es daran 😂
 
Zuletzt bearbeitet:
Javascript:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
  function makeChange(){
      var sb = document.getElementById("select");
      var preis = parseFloat(sb.options[sb.selectedIndex].value) * 59;
      document.getElementById("preis").innerHTML = preis.toFixed(2);
  }
</script>
</head>
<body onload="makeChange()">
<select name="select" id="select" onchange="makeChange()">
    <option value="0.5">0,5</option>
    <option value="1" selected>1,0</option>
    <option value="1.5">1,5</option>
</select>
<p><strong>Montagekosten</strong>: <span id="preis"></span> Euro</p>
</body>
</html>
Meine Änderungen:
  • parseFloat an Stelle von parseInt wegen der Nachkommastellen
  • mit toFixed gebe ich eine Zahl mit einer festen Anzahl Nachkommastellen aus
  • mit dem onload im body rufe ich eine Funktion auf, sobald das Dokument vollständig geladen wurde
  • mit dem selected in der SelectBox setze ich den Defaultwert
Noch ein Hinweis - man sollte den Steuerelementen für sich selbst sprechende Namen bzw. ID geben. Also so etwas wie "sKostenfaktor" oder so... beim Preis hast Du es ja auch gemacht.

Mit dem Vollzitat des vorhergehenden Postings verstößt Du gegen die Forenregeln. Solltest Du besser löschen ...
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: psYcho-edgE und Bazs
Danke dir, jetzt stehe ich vor einen anderen Problem.
Ich möchte eine weitere Selectbox einfügen und diese nun mit result4 zusammen rechnen, ich weiß, der Code sieht nicht toll aus :'D
Oder habe ich da einfach nur ein Denkfehler?

Muss gestehen, habe schon lange nichts mehr mit HTML, javascript und php gemacht 😂
 
Zuletzt bearbeitet:
Innerhalb einer html-Datei kann es nur einen <head> und einen <body> geben. Ich habe die bei meinem Post nur verwendet, damit Du Dir das ganze direkt im Browser anschauen kannst ... Das klappt mit Deinen Codefragmenten nicht.

Ansonsten rufst Du beim zweiten <select> makeChangeo() auf. Nur gibt es die Funktion nicht. Dafür hast Du makeChange() doppelt. Das onload musst Du nicht verwenden, macht bei Deinem Formular auch nicht wirklich Sinn, das war nur ein Beispiel um schon vor einer Eingabe die Berechnung mit den Default-Werten durchzuführen..
 
  • Gefällt mir
Reaktionen: psYcho-edgE
Du hast immer noch den gleichen Funktionsnamen doppelt. Zeile 12 und Zeile 19. Zeile 74 ist unvollständig, da fehlt der onchange-Aufruf und das Tagende.
 
  • Gefällt mir
Reaktionen: psYcho-edgE
Wenn ich das alles so ab ändere wie du es mir geschrieben hast, sehe ich zwar wie viel die Montage kosten wären, aber es rechnet nicht die Kosten auf das ausgerechnet Ergebnis, bei der 2. Select(i) sehe ich kein Preis und sobald ich was bestätige, rechnet es das auf result5 bzw gibt irgendwelche Zahlen dort aus
 
Welches Deiner vielen result - Dinger ist denn dein "ausgerechnet"- Ergebnis?
Dann musst Du halt die Werte berechnen und dazuaddieren. Also einfach eine Zeile in makeChange() bzw. makeChangeo() hinzufügen, die Dein result nimmt, den eigen Preis dazu addiert und an die erforderliche Stelle schreibt.

Ich empfehle Dir noch einmal sprechende bzw. beschreibende Variablennamen zu nutzen ...
 
Erledigt, habs hinbekommen danke euch 😂
 
Zuletzt bearbeitet:
Habe leider erneut ein Problem, weiß nicht ob es daran liegt, dass es so spät ist oder ich einfach zu doof bin :'D

und zwar möchte ich nun ausschließlich die Selectboxen addieren, mehr nicht, sobald ich dies mit folgenden Code mache, Schreibt er mir zwar die Values ein, aber addiert diese nicht miteinander sondern nur nebeneinander.

Code:
<script type="text/javascript">
    function makeChangeSelect(){
    var sb = document.getElementById("select");
    var preis = parseFloat(sb.options[sb.selectedIndex].value);
    document.getElementById("preis").innerHTML = preis.toFixed(2);
    }
    </script>

...............Snipped...............
<form name="form1" method="post" action="" oninput=  "result8.value = select.value + select0.value + select1.value + select2.value + select3.value">


<select name="select" id="select" onchange="makeChangeselect()">
    <option value="454">1</option>
    <option value="585" selected>2</option>
    <option value="989">3</option>
</select>

Mehr ist dies nicht, ich habe mehrere MakeChangeSelect drin, natürlich unter verschiedenen Namen., diese möchte ich nur alle zusammen addiert haben.
Danke euch für eure Hilfe.
 
Zuletzt bearbeitet:
Zurück
Oben