Link erst nach Checkbox-Aktivierung freigeben
Anna
- html
Hi zusammen...
Ich bin was HTML und CSS angeht eigentlich einigermaßen fit, aber alles was darüber hinaus geht ist noch nicht ganz meine Welt...
Ich hab folgendes Problem...
Ich würde auf unserer HP gerne den Link zur Anmeldung einer Kinderfreizeit gerne erst dann freigeben, wenn die Eltern die Anmelde-Bedingungen gelesen haben.
Das ganze soll so aussehen (alles auf einer Seite):
1. Text (Anmeldebedingung)
2. unter dem Text "Akzeptiere die Anmeldebedingungen" mit einer Checkbox
3. Textlink mit Grafik (zur Not auch Button)
Drück man den Link, passiert nichts (toll wär, wenn man so ne Systemmeldung mit "erst Anmeldebedingungen akzeptieren" eingeblendet bekommt - aber das ist mehr Gimmick). Nach aktivieren der Checkbox ist der Link aktiv.
Hab leider keine Kenntnisse wie man das realisiert, aber wenn ihr mir ein paar Stichpunkte nennt, informiere ich mich zur Not auch selber :)
Wär Euch für Eure Hilfe sehr dankbar :)
VG Anna
Das ganze soll so aussehen (alles auf einer Seite):
- Text (Anmeldebedingung)
- unter dem Text "Akzeptiere die Anmeldebedingungen" mit einer Checkbox
- Textlink mit Grafik (zur Not auch Button)
Formularelemente besitzen ein HTML-Attribut namens disabled, welches das betreffende Element ausgraut, also sperrt. Aus Sicht von Javascript erscheint diese Eigenschaft unter gleichem Namen. Weiterhin bietet HTML die Möglichkeit, auf Ereignisse zu reagieren, namentlich mit den Attributen onChange (<input>, bei Änderung eines Formularelements) und onLoad (<body>, beim Laden der Seite).
Mit diesen Mitteln könntest Du folgendermaßen vorgehen:
1. Dem <body>-Element ein onLoad-Ereignis verpassen, das mittels disabled=true dein <input>-submit-Element bei Laden der Seite sperrt.
2. Dem <input>-checkbox-Element ein onChange-Ereignis verpassen, das seinerseits mittels disabled=false dein <input>-submit-Element beim Abhaken der Erklärung wieder freischaltet.
Warum nun umständlich in Schritt 1 onLoad verwenden, wenn man doch gleich <input type="submit" disabled> benutzen könnte? Es gibt Leute, die Javascript deaktiviert haben. Ohne Javascript lässt sich das submit-Element aber nicht freischalten, diese Leute würden daher ein von vornherein, sprich HTML-seitig gesperrtes Formular nicht benutzen können. onLoad sorgt daher dafür, dass das submit-Element nur bei denen gesperrt wird, die es auch wieder freischalten können.
Um eine zweite, serverseitige Prüfung, ob die Erklärung akzeptiert wurde, kommst du so oder so nicht herum, denn benutzerseitigen Eingaben ist grundsätzlich nicht zu trauen. Javascript ist hier nur Komfort.
Sonst könntest du es so machen:
Beispielsweise so:
...
<input type="checkbox" onselect="write_link">
<script type="text/javascript">
funtion write_link(objekt)
{
if(objekt.checked == true)
{
document.write('<a href="linkziel.htm">Link aktiviert</a>');
}
else
{
document.write('<a href="javascript:alert(\'Bitte erst bestätigen!\')">Link deaktiviert</a>");
}
}
</script>
...
Im Body-Tag schreibst du dann onload="write_link".
Ist jetzt ungeprüft aus dem Kopf müsste aber klappen.
P.S. Serverseitige Nach-Prüfung fällt hier natürlich auch nciht weg.
Kleine Berichtigung:
...
<input type="checkbox" onselect="write_link(this)">
<script type="text/javascript">
funtion write_link(objekt)
{
if(objekt.checked == true)
{
document.write('<a href="linkziel.php">Link aktiviert</a>');
}
else
{
document.write('<a href="javascript:alert(\'Bitte erst bestätigen!\')">Link deaktiviert</a>");
}
}
</script>
...
Ich danke Euch allen schon mal... damit kann ich auf jeden Fall was anfangen...
Noch ne Frage...
1.) Warum muss ich denn ne Serverseitige Prüfung machen???
Wenn das irgendwie umgangen wird, wär nicht tragisch, will die Eltern nur darauf aufmerksam machen... damit sie zumindest gesehen haben dass es sowas wie Bedingungen bei der Anmeldung gibt
2.) Wie funktioniert die serverseitige Prüfung? mit PHP und if?
THX
1.) Warum muss ich denn ne Serverseitige Prüfung machen???
Wenn das irgendwie umgangen wird, wär nicht tragisch, will die Eltern nur darauf aufmerksam machen... damit sie zumindest gesehen haben dass es sowas wie Bedingungen bei der Anmeldung gibt
Wenn du meinst, darauf verzichten zu können, steht es dir frei, dies hier zu tun. Es ist nur ganz, ganz blöd, wenn Papa Murphy kommt, die Bedingungen übersieht und dann ausgerechnet an seinem schlechten Tag über selbige stolpert. Ich für meinen Teil schreibe lieber vorher drei zusätzliche Zeilen serverseitig als mir nachher das Gezeter von seinem überbezahlten Anwalt anzuhören (gibt ja so Choleriker, die eine Rechtsschutzversicherung eher als Rechtsschutzmiete ansehen).
Grundsätzlich solltest du aber Daten, die aus der bösen Außenwelt stammen, niemals trauen. Da hat sich schon so mancher einen fiesen Floh ins Fell gesetzt, dein Beispiel ist vergleichsweise harmlos.
2.) Wie funktioniert die serverseitige Prüfung? mit PHP und if?
Richtig, es kann aber natürlich auch jede andere serverseitige Sprache sein.
Du baust die Formularseite als Skript auf. Das Formular wird an sich selbst geschickt, ist das Häkchen gesetzt, werden die Formulardaten wie gewünscht weitergeleitet, ist es nicht gesetzt, spuckst du einfach das Formular zusammen mit einem noch deutlicheren Hinweis auf die Bedinungen nochmals aus.
Wie das nun im Detail aussieht, hängt davon ab, wie das Formular bislang verarbeitet wird.
Scripts und Anleitungen gibt es im internet genug. Gib einfach mal "PHP, Formular" bei Google ein.