Philipp Hasenfratz: Checkboxes

Beitrag lesen

Halihallo Jessica

  1. Wie kann ich bewirken, dass die Checkboxes bei einem Fehler beim Ausfüllen des Formulars trotzdem angehakt bleiben ?

Du generierst das Formular über PHP und ergänzt im HTML bei
<input type="checkbox" checked="checked" /> für aktivierte
Checkboxen. Ob eine Checkbox angehakt ist, kannst du z.B. in
der Session speichern.
Oder du verwendest javascript:history.back() um auf die Formularseite
zurückzukommen und aktivierst das Browsercaching. So sollten die
vom User eingegebenen Daten nach wie vor im Formular stehen
(theoretisch sollte dies auch ohne Caching funktionieren, aber die
Praxis spricht manchmal (IE?) anders.)

Um die PHP-Anticache Header zu umgehen:
---
session_cache_limiter('cache');
header( 'Pragma: cache', TRUE );
header( 'Expires: ' . gmdate("D, d M Y H:i:s", time()+1440) . ' GMT', TRUE);
header( 'Cache-Control: store, cache', TRUE );
---

  1. Wenn ich mehr als 1 Checkbox habe, kann ich den Inhalt (die angehakten Checkboxes) über einen Array (z.B.: foreach $auswahl as elem) abfragen. Wenn ich aber nun wissen möchte, ob eine bestimmte Checkbox der beiden angehakt ist, wie geht das dann ?

Man gibt den verschiedenen, gleichnamigen Checkboxen unterschiedliche
Werte und prüft, ob dieser Wert im Array vorkommt.

Mit "if($elem == "Auswahl1") kann man nur ein pos. Ergbenis erhalten, wenn man nur wirklich diese eine Checkbox angehakt hat. Wenn aber nun beide angehakt sind ?

... muss du eben prüfen, ob beide Werte im Array vorkommen.

Viele Grüsse

Philipp

--
The only program that runs perfectly every time, is a virus.