Sprint
Erfahrenes Mitglied
Hallo zusammen,
ich arbeite gerade an einer neuen Seite, bei der die Formulare alle erst einmal mit jQuery verarbeitet werden, u.a. auch darum, daß Inhalte nachgeladen werden können ohne die ganze Seite neu zu laden.
Nun wird jährlich eine Veranstaltung durchgeführt, von der alle Infos, Bilder usw. der letzten Jahre online zugänglich bleiben. Bis hierhin ist alles gut. Die Dateien und Fotos sollen aber nicht öffentlich zugänglich sein. Also bekommen alle Teilnehmer ein Kennwort, mit dem sie Zugang auf die entsprechende Seite bekommen.
Nun kommt das Problem. Da es sich bei der Seite um eine One-Page Seite handelt, sind alle Formulare gleichzeitig verfügbar. Also bekommt jedes Login sein eigenes JS Script, mit dem das dazugehörende Formular verarbeitet wird. Auch das funktioniert.
Wenn aber in den kommenden Jahren immer neue Veranstaltungen dazukommen, müßte ich jedes mal eine neue Funktion schreiben, die das neue Formular verarbeitet. Es müßte doch eigentlich möglich sein, ein Script zu schreiben, das universell von jedem dieser Formulare angesprochen wird und mittels übergebenem Parameter das richtige Formular verarbeitet und die zurückkommenden Daten richtig einfügt.
So habe ich das jetzt probiert:
Erstaunlicherweise funktioniert es, wenn das Formular mit der Enter-Taste abgesendet wird. Klickt man mit der Maus auf den Button, passiert nichts. Wenn ich hingegen für jedes Jahr ein eigenes Script habe, funktioniert auch der Versand per Mausklick. Dabei sollte die Enter-Taste gar nicht absenden und tut das bei allen anderen Formularen auch nicht.
Ok, letzteres ist nebensächlich, aber der Versand per Mausklick sollte schon funktionieren. Sieht jemand den Fehler bzw. was muß geändert werden, daß ein Script für beliebig viele Formulare reicht?
Ich hoffe, ich habe das ganze verständlich dargelegt.
Viele Grüße,
Sprint
ich arbeite gerade an einer neuen Seite, bei der die Formulare alle erst einmal mit jQuery verarbeitet werden, u.a. auch darum, daß Inhalte nachgeladen werden können ohne die ganze Seite neu zu laden.
Nun wird jährlich eine Veranstaltung durchgeführt, von der alle Infos, Bilder usw. der letzten Jahre online zugänglich bleiben. Bis hierhin ist alles gut. Die Dateien und Fotos sollen aber nicht öffentlich zugänglich sein. Also bekommen alle Teilnehmer ein Kennwort, mit dem sie Zugang auf die entsprechende Seite bekommen.
Nun kommt das Problem. Da es sich bei der Seite um eine One-Page Seite handelt, sind alle Formulare gleichzeitig verfügbar. Also bekommt jedes Login sein eigenes JS Script, mit dem das dazugehörende Formular verarbeitet wird. Auch das funktioniert.
Wenn aber in den kommenden Jahren immer neue Veranstaltungen dazukommen, müßte ich jedes mal eine neue Funktion schreiben, die das neue Formular verarbeitet. Es müßte doch eigentlich möglich sein, ein Script zu schreiben, das universell von jedem dieser Formulare angesprochen wird und mittels übergebenem Parameter das richtige Formular verarbeitet und die zurückkommenden Daten richtig einfügt.
So habe ich das jetzt probiert:
HTML:
<form class="rueck_form16">
<input id="login16" type="password" name="login" value="">
<input type="button" name="anmelden_2016" class="button" value="absenden" onclick="$(showfiles('16')).submit();" style="margin-top: 40px;" />
</form>
Javascript:
var showfiles = function(jahr){
$('.rueck_form'+jahr).submit(function () {
$.ajax({
type: 'POST',
url: 'getrueck.php',
cache: false,
data: $(".rueck_form"+jahr).serialize(),
success: function (data) {
if (data != "error") {
$('#rueck'+jahr).html(data);
$('#rueck'+jahr+'_error').hide();
$('.rueck_form'+jahr).hide();
init_rueck();
} else {
$('#rueck'+jahr+'_error').show();
}
}
});
return false;
});
}
Erstaunlicherweise funktioniert es, wenn das Formular mit der Enter-Taste abgesendet wird. Klickt man mit der Maus auf den Button, passiert nichts. Wenn ich hingegen für jedes Jahr ein eigenes Script habe, funktioniert auch der Versand per Mausklick. Dabei sollte die Enter-Taste gar nicht absenden und tut das bei allen anderen Formularen auch nicht.
Ok, letzteres ist nebensächlich, aber der Versand per Mausklick sollte schon funktionieren. Sieht jemand den Fehler bzw. was muß geändert werden, daß ein Script für beliebig viele Formulare reicht?
Ich hoffe, ich habe das ganze verständlich dargelegt.
Viele Grüße,
Sprint