andreas_ck: Rückgabewert von checkboxen

Moin,

ich versuche, ein Formular mit PHP auszuwerten und stoße auf folgendes Problem:
Wenn ich mehrere Elemente eine Checkbox-Gruppe markiere, kann ich bei der Auswertung nur auf das letzte zugreifen. Der Versuch, die Variable als Array zu behandlen ist auch gescheitert. In welcher Form werden die Checkbox-Elemente beim Versand eines Formulars übergeben?
Vielen Dank für jeden Tipp,

Andreas

  1. Hallo andreas!

    Wenn ich mehrere Elemente eine Checkbox-Gruppe markiere, kann ich bei der Auswertung nur auf das letzte zugreifen. Der Versuch, die Variable als Array zu behandlen ist auch gescheitert.

    Das ist aber die übliche (und, wenn man alles richtig macht auch funktioniernde) Art:
    http://www.php-center.de/faq/faq-webvariablen.html#webvariablen-6

    Gruss,
     Carsten

  2. Moin,

    ich versuche, ein Formular mit PHP auszuwerten und stoße auf folgendes Problem:
    Wenn ich mehrere Elemente eine Checkbox-Gruppe markiere, kann ich bei der Auswertung nur auf das letzte zugreifen. Der Versuch, die Variable als Array zu behandlen ist auch gescheitert. In welcher Form werden die Checkbox-Elemente beim Versand eines Formulars übergeben?

    Dein Problem hat direkt mit PHP zu tun, nicht mit HTML, denn hier kommt ein "Trick" für PHP zum Einsatz, der in HTML nur "ganz gewöhnliches HTML" ist.

    Benenne deine Checkboxen um.

    Wenn sie bis jetzt "box" hießen, nenne sie "box[]". Dadurch wird PHP veranlaßt, ein Array namens "box" aufzubauen, in dem als Elemente alle angekreuzten Checkboxen enthalten sind.

    Du kannst vielleicht auch mit HTTP_POST_VARS oder HTTP_GET_VARS auf die Checkboxen-Angaben zugreifen (je nachdem, ob es ein GET- oder POST-Formular ist).

    Der Trick ist folgender: Das Formular mit zwei Checkboxen namens "box" wird von PHP so in Variablen umgewandelt:
    box="value von Box1"
    box="value von Box2"

    Logischerweise bleibt nur der zweite Wert übrig.

    Mit dem Namen "box[]" geschieht das gleiche:
    box[]="value von Box1"
    box[]="value von Box2"

    Mit dem Unterschied, daß die Zuweisung "box[]=" ein Array anlegt und den zugewiesenen Wert als neues letztes Element an das Array anhängt. Auch hilfreich zu wissen, wenn du mal an ein Array unbekannter Länge was anhängen willst. ;)

    - Sven Rautenberg

  3. Vielen Dank euch beiden; mit der Umbenennung der Checkbox in "name[]" läuft es wunderbar. Ihr ward eine große Hilfe.
    Tschüss.

    Moin,

    ich versuche, ein Formular mit PHP auszuwerten und stoße auf folgendes Problem:
    Wenn ich mehrere Elemente eine Checkbox-Gruppe markiere, kann ich bei der Auswertung nur auf das letzte zugreifen. Der Versuch, die Variable als Array zu behandlen ist auch gescheitert. In welcher Form werden die Checkbox-Elemente beim Versand eines Formulars übergeben?
    Vielen Dank für jeden Tipp,

    Andreas