dedlfix: 2 checkboxen mit foreach in PHP auswerten

Beitrag lesen

Tach!

> name="wahl[]" value="FIGUREN - 3D"
> name="wahl[]" value="FIRMEN"

ändere die Namen in name="wahl[FIGUREN]" und name="wahl[FIRMEN]" so hast Du die dazugehörigen Values mit PHP serverseitig gleich in einer passenden Datenstruktur.

Das sehe ich noch nicht so. Ob die Struktur passend ist, vermag ich ohne Kenntnis des konkreten Anwendungsfalls nicht beurteilen.

Mit seiner Schreibweise kann man jedenfalls mit

    foreach ($_POST['wahl'] as $value)

über die ausgewählten Einträge laufen. (Die nicht ausgewählten bleiben generell außen vor, die werden ja vom Browser nicht mit übermittelt.)

Nach deinem Vorschlag hat man die Values nun stattdessen in den Keys.

    foreach ($_POST['wahl'] as $name => $value)

Wenn man das value-Attribut weglässt, enthält die Variable $value enthält stets den Wert 'on', ist also nicht weiter sinnvoll verwendbar, muss aber aus syntaktischen Gründen angegeben werden. Bleibt das value-Attribut wie es ist, hat er den Wert nun doppelt, im Key und als Value. Mit und ohne value-Attribut sehe ich hier noch keinen Vorteil.

Auch wenn man konkret auf einzelne Werte prüfen möchte, ist mit

    in_array('FIRMEN', $_POST['wahl'])

oder

    isset($_POST['wahl']['FIRMEN'])

weder das eine noch das andere "passender" als die andere.

Und wenn ich mir das $_POST-Array so ansehe, sieht statt des bisherigen

$_POST['wahl' => [
   'FIRMEN',
   'FIGUREN - 3D'
]]

ein

$_POST['wahl' => [
    'FIRMEN' => 'FIRMEN',
    'FIGUREN - 3D' => 'FIGUREN - 3D'
]]

beziehungsweise

$_POST['wahl' => [
    'FIRMEN' => 'on',
    'FIGUREN - 3D' => 'on'
]]

auch irgendwie nicht "passender" aus.

dedlfix.