Hallo Leute,
zunächst mal: habt Nachsicht, ich bin absoluter JavaScript-Newbie! Ich habe im CMS Joomla 2.5 die aktuelle Version der Breezingforms-Komponente installiert, mit der man sich Formulare bauen kann. Jetzt bin ich dabei, ein solches zusammenzustellen. Ein Anmeldeformular für eine Vereinsweihnachtsfeier, wo unter anderem das Essen vorbestellt werden soll.
Auf der ersten Formularseite gibt man ein paar persönliche Angaben und das Essen, welches man bestellen möchte an, indem man in ein Eingabefeld vor der jeweiligen Speise die Menge angibt. Da man mit einem mal mehrere Personen anmelden kann (z.B. Familienmitglieder) kann es ja auch sein, das man ein Essen mehrfach bestellt. Daher die Eingabemöglichkeit einer Zahl.
Wenn die Angaben auf der ersten Seite gemacht sind, gibt es einen "Weiter"-Button, der die Seite validiert und auf die zweite Formularseite verlinkt. Dort sollen alle Angaben in einer Summary nochmal dargestellt werden. Außerdem soll der zu zahlende Unkostenbeitrag (1€ pro Person) + die Kosten der ausgewählten Speisen in einem Feld zusammengerechnet werden.
In der Komponente kann man jedem Textfeld bestimmte Scripte zuweisen; ein Initialisierungsscript, eine Aktionsscript und ein Validierungsscript. Wie ich einem Beispiel entnehmen konnte, werd die Summary mit einem Initialisierunsscript realisiert. D.h. das bei Eintritt der zweiten Formularseite die Eingaben aus der ersten Seite initial verwendet werden (können).
Dem Textfeld wird zunächst ein sog. Rahmencode zugewiesen. In diesen Rahmencode kommt dann das eigentliche Script. Offensichtlich habe ich im Script einen Fehler, da das Formular nach dem Script nicht mehr richtig dargestellt wird und der Gesamtpreis, der ausgerechnet werden soll, wird auch nicht angezeigt.
Hier das Script:
Ich hoffe mir kann wer helfen, wo mein Fehler liegt.
"gesamt_check" ist der Name von dem Feld, in dem der Gesamtpreis erscheinen soll.
"anzahl_eingabe" ist die Anzahl der Personen
"speisenname_eingabe" ist die Anzahl des jeweiligen Essens
Anmeldung Weihnachtsfeier 2013
Vielen Dank für eure Hilfe
zunächst mal: habt Nachsicht, ich bin absoluter JavaScript-Newbie! Ich habe im CMS Joomla 2.5 die aktuelle Version der Breezingforms-Komponente installiert, mit der man sich Formulare bauen kann. Jetzt bin ich dabei, ein solches zusammenzustellen. Ein Anmeldeformular für eine Vereinsweihnachtsfeier, wo unter anderem das Essen vorbestellt werden soll.
Auf der ersten Formularseite gibt man ein paar persönliche Angaben und das Essen, welches man bestellen möchte an, indem man in ein Eingabefeld vor der jeweiligen Speise die Menge angibt. Da man mit einem mal mehrere Personen anmelden kann (z.B. Familienmitglieder) kann es ja auch sein, das man ein Essen mehrfach bestellt. Daher die Eingabemöglichkeit einer Zahl.
Wenn die Angaben auf der ersten Seite gemacht sind, gibt es einen "Weiter"-Button, der die Seite validiert und auf die zweite Formularseite verlinkt. Dort sollen alle Angaben in einer Summary nochmal dargestellt werden. Außerdem soll der zu zahlende Unkostenbeitrag (1€ pro Person) + die Kosten der ausgewählten Speisen in einem Feld zusammengerechnet werden.
In der Komponente kann man jedem Textfeld bestimmte Scripte zuweisen; ein Initialisierungsscript, eine Aktionsscript und ein Validierungsscript. Wie ich einem Beispiel entnehmen konnte, werd die Summary mit einem Initialisierunsscript realisiert. D.h. das bei Eintritt der zweiten Formularseite die Eingaben aus der ersten Seite initial verwendet werden (können).
Dem Textfeld wird zunächst ein sog. Rahmencode zugewiesen. In diesen Rahmencode kommt dann das eigentliche Script. Offensichtlich habe ich im Script einen Fehler, da das Formular nach dem Script nicht mehr richtig dargestellt wird und der Gesamtpreis, der ausgerechnet werden soll, wird auch nicht angezeigt.
Hier das Script:
Code:
// Rahmencode
function ff_gesamt_check_init(element, condition)
{
switch (condition) {
case 'pageentry':
break;
default:;
} // switch
// Code Gesamtrechnung
function ff_pss_calculate()
{
var amount = 0;
var order;
order = ff_getElementByName('anzahl_eingabe').value;
if (order != '') amount += parseInt(order) * 1.00;
order = ff_getElementByName('zaziki_eingabe').value;
if (order != '') amount += parseInt(order) * 3.50;
order = ff_getElementByName('saganaki_eingabe').value;
if (order != '') amount += parseInt(order) * 6.00;
order = ff_getElementByName('salat_eingabe').value;
if (order != '') amount += parseInt(order) * 8.50;
order = ff_getElementByName('suvlaki_eingabe').value;
if (order != '') amount += parseInt(order) * 9.00;
order = ff_getElementByName('grillteller_eingabe').value;
if (order != '') amount += parseInt(order) * 12.20;
order = ff_getElementByName('kalamaris_eingabe').value;
if (order != '') amount += parseInt(order) * 9.80;
order = ff_getElementByName('cordonbleu_eingabe').value;
if (order != '') amount += parseInt(order) * 9.50;
order = ff_getElementByName('putenschnitzel_eingabe').value;
if (order != '') amount += parseInt(order) * 9.00;
order = ff_getElementByName('schaeufele_eingabe').value;
if (order != '') amount += parseInt(order) * 8.50;
order = ff_getElementByName('apfel_eingabe').value;
if (order != '') amount += parseInt(order) * 3.80;
order = ff_getElementByName('eis_eingabe').value;
if (order != '') amount += parseInt(order) * 3.80;
} // ff_pss_calculate
var myTextField = ff_pss_calculate();
// Now the TextField which will get the value of your first TextField
var myTextField2 = ff_getElementByName('gesamt_check');
ff_getElementByName('gesamt_check').value = (Math.round(amount*100)/100).toFixed(2);
// Set the value
myTextField2.value = myTextField.value;
} // ff_gesamt_check_init
Ich hoffe mir kann wer helfen, wo mein Fehler liegt.
"gesamt_check" ist der Name von dem Feld, in dem der Gesamtpreis erscheinen soll.
"anzahl_eingabe" ist die Anzahl der Personen
"speisenname_eingabe" ist die Anzahl des jeweiligen Essens
Anmeldung Weihnachtsfeier 2013
Vielen Dank für eure Hilfe