Moin!
eine kurze Frage: In Selfhtml steht folgendes:
Alle Checkboxen, die den gleichen Namen haben, gehören zu einer Gruppe, d.h. von diesen Elementen kann der Anwender keines, eines oder mehrere ankreuzen.
Diese Aussage ist meines Erachtens falsch, zumindest aber nicht zielführend. Eine Checkbox kann, unabhängig von anderen Checkboxen, an oder aus sein. Eine Gruppierung wie bei Radiobuttons ist absolut unnötig.
Dennoch kann man, wenn es für die interne Verarbeitung hilfreich ist (beispielsweise mit Javascript), allen Checkboxen einer "Sinngruppe" den gleichen Namen geben, damit ein Array gebildet wird. In Javascript geschieht das automatisch. In PHP nicht.
Wenn in PHP alle Checkboxen gleichen Namens in einem Array landen sollen, muss der Name auf "[]" enden. Beispiel: "pizzabelag[]". Ein Programmiertrick in PHP erstellt dann ein Array.
Der Programmiertrick läßt sich übrigens allgemein in PHP anwenden. Wenn man einen neuen Wert hinten an ein Array anhängen will, kann man dies so tun:
$array[] = "wert";
Läßt man die Angabe eines Index weg, wird hinten angehängt.
PHP erhält vom Formular nun also nicht mehr folgende Information:
pizzabelag = "salami";
pizzabelag = "schinken";
pizzabelag = "mais";
sondern solche Angaben:
pizzabelag[] = "salami";
pizzabelag[] = "schinken";
pizzabelag[] = "mais";
Und dadurch baut PHP ein Array auf. Der Nachteil ist, dass man mit Javascript jetzt nicht mehr so einfach auf das Formular bzw. dessen Elemente zugreifen kann. Denn "document.formular.pizzabelag[]" würde von Javascript als Arraybezeichner missverstanden, der ein einzelnes Element ansprechen soll, obwohl das Gesamtarray gemeint ist. Man muss daher mit "document.formular.elements["pizzabelag[]"]" arbeiten.
- Sven Rautenberg
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)