Все голову сломал перебор массиво с формы checkbox

shurek

Новичок
есть форма в ней есть checkbox если он отмечен то массив появляется и его значение on а в базу надо записать 1
а если он не отмечен то надо записать 0

То что сейчас на все записываться 0 это я знаю.
Но как сделать так как надо?
Может кто сталкивался?

PHP:
if ($_GET['shag'] == 'update') {
        
        foreach ($_POST as $key=>$stolbec) {
            $id = $key;
            foreach ($stolbec as $stolbec=>$value) {
                
                if ($stolbec== 'delel') {
                    $value= '1';
                }else{
                    $value= '0';
                }
                
                if ($stolbec== 'otchet') {
                    $value= '1';
                }else{
                    $value= '0';
                }
                    $rez= "UPDATE sotrudnik SET $stolbec =  '$value' WHERE  idsotrudnik =$id";
 
        }
        
    }
}
 

shurek

Новичок
Такой вот массивы приходит
PHP:
Array
(
    [11] => Array
        (
            [delet] => on
            [familiya] => Фамилия
            [imy] => Имя
            [otchestvo] => Отчество
            [tel] => Телефон
            [pass] => Пароль
        )
 
    [16] => Array
        (
            [delet] => on
            [otchet] => on
            [familiya] => Фамилия
            [imy] => Имя
            [otchestvo] => Отчество
            [tel] => Телефон
            [pass] => Пароль
        )
)
 

WMix

герр M:)ller
Партнер клуба
не знаю порадует ли тебя такое решение, используемое часто

PHP:
<input type="hidden" name="a[delel]" value="0" />
<input type="checkbox" name="a[delel]" value="1" />

<input type="hidden" name="a[otchet]" value="0" />
<input type="checkbox" name="a[otchet]" value="1" />

echo $_POST['a']['delel'];
echo $_POST['a']['otchet'];
или как там у тебя это называется.
 

shurek

Новичок
не вкурил. спать наверно ужа пора ))))))

Сейчас потестю отпишусь.
А если мне его по умолчанию надо установить отмечены? когда форма формируется?
 

WMix

герр M:)ller
Партнер клуба
ИМХО – в таких случаях эффективнее использовать "белый список" полей при проверке данных из формы, чем плодить лишний HTML для каждого чекбокса.
я на зенде основываюсь, думая что класс form существует. (те я уже и не думаю об этом)
https://github.com/zendframework/zf1/blob/master/library/Zend/View/Helper/FormCheckbox.php#LC62

но вообще да, нативным php красивее с белым списком
 

Andkorol

Новичок
Так это Zend, что ли, цепляет к каждому чекбоксу такой вот hidden-элемент..?:confused:
 

WMix

герр M:)ller
Партнер клуба
да. масло масленное, но удобно. а валидатор абстрактный и проверяет только список допустимых значений.
 
Сверху