Der Martin: Eingabe von Variablen, verarbeitun durch funktion und ausgabe

Beitrag lesen

Hallo,

ich bin auf folgendes Beispiel gestoßen:
http://de.selfhtml.org/javascript/sprache/funktionen.htm

eigentlich soll das eher eine Erklärung des Prinzips von Funktionen sein; wirklich gut verständlich ist sie aber meiner Ansicht nach nicht. Wichtig ist dieser Abschnitt:

Unmittelbar hinter dem Funktionsnamen folgt eine öffnende Klammer. Wenn die Funktion keine Parameter erwarten soll, notieren Sie dahinter sofort wieder eine schließende Klammer. Wenn die Funktion Parameter übergeben bekommen soll, notieren Sie innerhalb der Klammer die Namen der Parameter. Die Namen der Parameter sind frei wählbar. Bei den Parameternamen gelten die gleichen Regeln wie beim Funktionsnamen. Mehrere Parameter werden durch Kommata voneinander getrennt.

Damit erklärt sich eigentlich schon ein Teil deiner Fragen. Also: Die Klammern sind dazu da, dass man die Parameter reinschreibt, mit denen die Funktion arbeiten soll. Wenn sie keine Parameter braucht (also ohne Daten "von außerhalb" arbeitet), bleibt die Klammer halt leer.

<script type="text/javascript">  // Hier wird teil für Javascript eingeteilt
function Grundumsatz() {    // Name der Funktion
                            // Frage für was stehn die klammern
                            // welche folgen hat es wenn ich was in
                            // die klam mern reinschreibe

Siehe Erklärung oben: Du willst deiner Funktion drei Parameter übergeben. Also schreibe die Platzhalter für diese drei Parameter in die Klammern:

function Grundumsatz(M, L, T)

var Ergebnis = 66.5 + 13.7* M + 5 * L - 6.8 * T; // Meine Funktion

Die Variablen M, L und T existieren in deinem Originalcode weder als Funktionsparameter (auch Argumente genannt), noch als lokal angelegte Variablen. Also versucht Javascript hier auf globale Variablen mit den Namen M, L und T zuzugreifen. Die existieren aber auch nicht, daher produziert diese Zeile eine Fehlermeldung. In der Fehlerkonsole solltest du etwas in der Art wie 'M is undefined' oder so finden.
Außerdem gibt deine Funktion keinen Wert zurück. Du berechnest zwar einen Wert und nennst ihn Ergebnis, verwendest ihn aber nicht weiter.

<form name="BruttoForm" action=""> // versteh ich nicht

Dann lies nochmal nach, wie Formulare definiert werden und wie sie funktionieren.

Eingabe Gewicht in kg: <input type="text" name="M"><br> // klar
Eingabe Länge in cm: <input type="text" name="L"><br>  //klar
Eingabe Jahre in cm: <input type="text" name="T"><br> // klar
<p>Kommabetrag mit Punkt eingeben!</p>
<input type="button" value="Grundumsatz" onclick="Grundumsatz(document.BruttoForm.M.value,document.BruttoForm.L.value,document.BruttoForm.T.value)"> // hier wird funktion aufgerufen
                               // Welche Bedeutung hat der Klammernausdruck

Richtig, hier wird die Funktion aufgerufen. Und für die Platzhalter M, L und T, die wir inzwischen in der Funktions-Deklaration ergänzt haben, werden die Werte der entsprechend benamsten Formularfelder übergeben.
Mit dem Funktionsergebnis (du hast doch inzwischen eine return-Anweisung in der Funktion ergänzt?) tust du aber auch nichts. Du lässt dir sozusagen ein Glas Sekt geben, greifst aber nicht danach.
Du möchtest dein Funktionsergebnis doch noch der value-Eigenschaft des letzten noch verbleibenden Formularfelds zuweisen. Diesem da:

über hilfe würde ich mich sehr freuen.

Ich hoffe, das hilft dir schon mal ein Stück weiter.

So long,
 Martin

--
Wenn zwei dasselbe tun, sind sie vielleicht bald zu dritt.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(