Javascript mit Liste und Eingabefeldern

Hallo,

ich will in meine Website eine Berechnung einbinden. Vermutlich ist Javascript hierfür passen. Kenn mich nur nicht damit aus.

Folgende Excel-Formel vergleicht D9 mit C2/C3/C4 und rechnet dann D2/D3/D4 mal einem Eingabefeld C9 (Zahlenwert) + (weiters Eingabefeld E9 (Zahlenwert) mal Fixwert D5. Nun soll zur Summe noch ein Fixbetrag hinzu addiert werden und Ergebnisausgabe mit „Berechnenbutton“.

=WENN(D9=C2;(D2*C9)+(E9*D5);
WENN(D9=C3;(D3*C9)+(E9*D5);
WENN(D9=C4;(D4*C9)+(E9*D5):wink:)) + Fixbetrag

Hoffe das ist verständlich?!

Vielen Dank im Voraus

Hallo,

z.b. dieses hier sollte funktionieren:

function calc() {
 var c9 = document.getElementById("C9").value;
 var d9 = document.getElementById("D9").value;
 var e9 = document.getElementById("E9").value;

 var c2 = document.getElementById("C2").value;
 var c3 = document.getElementById("C3").value;
 var c4 = document.getElementById("C4").value;

 var d2 = document.getElementById("D2").value;
 var d3 = document.getElementById("D3").value;
 var d4 = document.getElementById("D4").value;
 var d5 = document.getElementById("D5").value;
 var fixbetrag = 24;

 if(d9 == c2) {
 document.getElementById("result").value = (d2\*c9)+(e9\*d5) + fixbetrag;
 } else if(d9==c3) {
 document.getElementById("result").value = (d3\*c9)+(e9\*d5) + fixbetrag;
 } else if(d9==c4) {
 document.getElementById("result").value = (d4\*c9)+(e9\*d5) + fixbetrag;
 } else {
 document.getElementById("result").value = fixbetrag;
 }
}

C9: 

D9: 

E9: 


C2: 

C3: 

C4: 


D2: 

D3: 

D4: 


D5: 



Result: 

Gruß,
Olaf

JavaScipt ist hierfür sinnvoll.

Allerdings bräuchte ich noch einige Angaben um dir einen Code vorzuschlagen.

Die Angaben in den Feldern D9, C2 bis C4, D2 bis D4, sowie der Fixwert sind feste Zahlen oder soll der Benutzer diese auch individuell eingeben können?

Hallo,

@Juliane:
D9 solle ein Listenfeld sein mit der Auswahl C2/C3/C4, demnach folgt die Auswahl D2-D4 Festewerte zur Verwendung in der Rechnung.

@Olaf:
Danke, aber noch nicht das passende.
Wie oben beschrieben, soll D9 ein Scrolldownfeld sein mit der Auswahl C2-C4.
Auswahl C2= fester Zahlenwert zur Verrechnung.

Also noch mal für mich zum Verständnis:

Du willst ein Feld haben mit einem DropDown Menü (ScrollDown gibt es meines Wissens nicht) in dem man C2 bis C4 auswählen kann, dass aber in etwa das aussagt:

Wert D9 = C2, C3 oder C4

Ja, genau.
Mit der Auswahl, Äpfel, Birnen, Bananen.

Dnach je nach Obst, den Kistenpreis berücksichtigen. Und zusätzlich die Anzahl Paletten.

Ich hab das ganze schon in Excel. Und kannst auch gerne mal versenden.

Gruß

Ja bitte schicke sie mir mal per Mail (findest du in meinem Profil)

Dann kann ich dir gleich den Code komplett fertig machen und du musst nicht mehr drin rum schrauben um deine Daten einzugeben.

Leider nicht wirklich verständlich. Am besten Du fängst erst einmal mit den HTML Eingabefeldern an, Javascript kommt dann im nächsten Schritt ins Geschäft.

Hallo TheBigBandy,

Javascript ist stets die richtige Anwendung bei Berechnungen. Sonst müssten die Seiten stets neu aufgebaut werden.

In Deinem Fall ist das Konzept einfach:

Du erstellst ein Formular mit den Feldern und benenne es entsprechend. Das Formular dient dabei nur der Zuordnung der Felder und evtl einer Weiterleitung der Daten - so gewünscht in eine andere Funktion (Datenbankeintrag, etc. per php). Das aber nur mal am Rande.

Grundprinzip:
Das Eingabefeld benennst Du meinentwegen „Eingabe“ und das Ausgabefeld „Ausgabe“.

In Deinem Fall aber bedarf es dreier zusätzlicher Felder, die Du hier vergleichen willst. In diesem Fall fügst Du drei Felder hinzu, die Du am Besten mit „vergleich1“ bis „vergleich3“ benennst. Denn daraus werden dann die weiteren Werte gezogen, die bei dem Aufrufen der Seite mit dem Tag versiehst. Ebenso verfährst Du mit den Fixwerten, die Du entweder als sichtbare Felder (type=text) oder unsichtbare Felder (type=hidden) in der Seite einbaust. Aber es gibt auch die Möglichkeit diese Fixwerte in die Funktion fest einzubauen, wodurch die Werte nicht aufgerufen werden müssen aus der Seite - sofern Du sie nicht immer wieder verändern willst in der Seite. Die Verghleichs-Werte werden dann herangezogen zur Berechnung in der Funktion.

Zwischen Head und Body fügst Du die Javascript (JS) - Funktion ein, die folgende Befehle enthält und in etwa folgendermaßen aufgebaut ist:

function berechnung()
{
//Variablendeklaration
var eingabe, ausgabe, vergl1, vergl2, vergl3, Fixwert1,Fixwert2, Fixbetrag;
//Variablenbelegung
eingabe=window.document.formularname.eingabe.value;
vergl1=window.document.formularname.vergleich1.value;
vergl2=window.document.formularname.vergleich2.value;
vergl3=window.document.formularname.vergleich3.value;
//Sofern Fixwerte aus dem Formular genommen werden sollen
Fixwert1=window.document.formularname.Fixwert1.value; Fixwert2=window.document.formularname.Fixwert2.value;
//Berechnung mit der switch-Funktion
switch(eingabe)
{
vergl1: ausgabe=(eingabe*Vergleich1)…
[…]
}
[…]
window.document.formularname.ausgabe.value=ausgabe;
}

Es liegt nun an Dir, zu entscheiden, wie Du vorgehen willst. Alle Eingaben, die Du normalerweise in Excel machst, um die Werte zu verändern, sollten in diesem Fall über Felder angezeigt werden, die dann auch per Javascript ausgelesen und berechnet werden. Statt eben der Bezeichnungen wie „C9“ sind hier dann eben die Variablen, die hier konkret belegt und berechnet werden. Am Ende wird dann das Ausgabefeld mit dem entsprechenden Wert belegt.

Zum Formatieren von Zahlenwerten kann man in Javascript folgende Funktion verwenden:
http://www.flashforum.de/forum/javascript-jquery/zah…

Kurz: meinWert.toFixed([Anzahl der Nachkommastellen])

So - nun hoffe ich, Dich nicht erschlagen zu haben und Dir etwas weiter geholfen zu haben. ;o)

schau mal da:
http://de.selfhtml.org/javascript/beispiele/formular…
dort gibts Beispiele und Erklärungen zu JavaScript.
gruss