Philipp Grashoff: Checkboxen mit gleichem Namen -> Übertragener Wert

Hi Forumler,

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.

Das bedeutet ja, dass dann die verschiedenen Values der Checkboxen gleichen Namens alle übertragen werden muessten, sonst waere die Gruppierung ja sinnlos. Ich habe aber in einem weiterverarbeitenden PhP-Script versucht, auf die verschiedenen Werte der Checkboxen gleichen Namens zuzugreifen, aber irgendwie wird immer nur das Value der untersten Checkbox übertragen.

Ist das nur ein Fehler in Selfhtml, oder kann man auf die Verschiedenen Values zugreifen? Wenn ja, wie?

Schonmal Danke in Voraus

MFG

Philipp

  1. Hi Philipp,

    Du musst für eine Grppe von Checkboxen den gleichen Namen und für jede checkbox einen anderen Value angeben. Dann muss es gehen.

    Gruss
    x-VieW

  2. Halli

    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.

    Ich habe aber in einem weiterverarbeitenden PhP-Script versucht,

    Php verlangt ins solchen Fällen, daß der Name auf [] endet.

    cu,
    Robert

  3. 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)
  4. Hi,

    vielen Dank fuer die schnellen Antworten ;)

    MFG

    Philipp