Java Ergebnis zusätzlich mit Selectbox Addieren

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
Hab mich verklickt >.< meine kleine Tochter sitzt nebenbei auf mein Schoß und hampelt hier rum :'D
 

Andreas_

Commander
Dabei seit
Jan. 2017
Beiträge
2.083
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:

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
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:

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
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:

Andreas_

Commander
Dabei seit
Jan. 2017
Beiträge
2.083
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:

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
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:

Andreas_

Commander
Dabei seit
Jan. 2017
Beiträge
2.083
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..
 

Andreas_

Commander
Dabei seit
Jan. 2017
Beiträge
2.083
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.
 

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
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
 

Andreas_

Commander
Dabei seit
Jan. 2017
Beiträge
2.083
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 ...
 

Bazs

Cadet 1st Year
Ersteller dieses Themas
Dabei seit
Juli 2017
Beiträge
9
Erledigt, habs hinbekommen danke euch 😂
 
Zuletzt bearbeitet:
Top