Autor Zpráva
Mufna
Profil
Zdravím Vás. Jak mám ošetřit checkboxy, abych měl strnulý formulář ? Po odeslání to chci projít cyklem foreach(), ale zatím mi to nefunguje správně. Rád bych pokud možno zachoval kód checkboxového inputu včetně konstrukce se $status='active' - vím že se to dá dělat i jinak, ale nechtěl bych už tohle předělávat, vybral jsem si toto řešení a vyhovuje mi.

Zatím jsem zkoušel toto, ale není to dobře (zatrhnou se úplně všechny checkboxy):
     foreach ($_POST["fws"] as $key => $value) {
        $status = 'active';
     }


Jeden input:
<input type="checkbox" name="<?php print ($fws); ?>" id="<?php print ($fws_name[0]); ?>" class="checkbox" value="<?php print ($fws_value[0]); ?>" <?php if ($status == 'active') { echo 'checked="checked"'; } ?> />


Z includovaného souboru se předávají proměnné:
$fws ='fws[]';
$fws_name[0]  ='fws1';
$fws_value[0] ='ABC';    // tady mám vždy nějaký trojmístný kód, každý checkbox má jiný
$fws_name[1]  ='fws2';
$fws_value[1] ='BCD';

atd.
fajzen
Profil
zatrhnou se úplně všechny checkboxy
samozrejme, že sa zatrhnú všetky inputy, keď všetky inputy zdieľajú rovnakú premennú $status, ktorej stačí, aby sa odoslal jediný zatrhnutý input...

skôr by to chcelo asi niečo ako:
<?php
foreach ($_POST["fws"] as $key => $value) {
    $status[$value] = 'active';
}
?>

<input type="checkbox" name="<?php print ($fws); ?>" id="<?php print ($fws_name[0]); ?>" class="checkbox" value="<?php print ($fws_value[0]); ?>" <?php if (isset($status[$fws_value[0]]) && $status[$fws_value[0]] == 'active') { echo 'checked="checked"'; } ?> />
Mufna
Profil
Tak jsem to trochu předělal. Poradíte mi jak mám teď zkonstruovat funkci foreach() pro kontrolu odeslaných checkboxů, která projde celé pole $checkbox ? Možná by $checkbox mohlo být i dvourozměrné pole se všemi hodnotami, ale nevím.

Základní rozdělení (kategorie):
$checkbox = array(
   0 => 'fws[]',
   1 => 'grf[]',
   2 => 'cod[]'
);

Jednotlivé inputy v kategoriích
$fws = array(
   0 => 'AA1',
   1 => 'AA2',
   2 => 'AA3',
   3 => 'AA4'
);

$grf = array(
   0 => 'BB1',
   1 => 'BB2',
   2 => 'BB3',
   3 => 'BB4',
   4 => 'BB5',
   5 => 'BB6',
   6 => 'BB7'
);

$cod = array(
   0 => 'CC1',
   1 => 'CC2',
   2 => 'CC3',
   3 => 'CC4',
   4 => 'CC5'
);


Kód prvního inputu:

// Pro $fws - tučně vyznačené se samozřejmě mění

<input ... name="<?php print ($checkbox[0]); ?>" value="<?php print ($fws[0-3]); ?>" <?php if ($status[$fws[0-3]] == 'active') { echo 'checked="checked"'; } ?> />

// Pro $grf

<input ... name="<?php print ($checkbox[1]); ?>" value="<?php print ($grf[0-6]); ?>" <?php if ($status[$grf[0-6]] == 'active') { echo 'checked="checked"'; } ?> />

// Pro $cod

<input ... name="<?php print ($checkbox[2]); ?>" value="<?php print ($cod[0-4]); ?>" <?php if ($status[$cod[0-4]] == 'active') { echo 'checked="checked"'; } ?> />

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: