循环遍历数组并检查是否设置了复选框

时间:2014-02-17 09:59:17

标签: php arrays checkbox

我的页面上有一个dinamycly生成的表(取决于查询的结果),带有entrys和复选框。现在我将checkboxnames传递给一个数组。然后该数组具有例如值。 10,25,26 ......在里面。此值(checkboxnames)也是第二个数据库上的字段标识符,其字段为“entry_ID”。

我现在要做的是检查动态生成的表格上的复选框是否为“ON”,并使用“1”(review_done)更新依赖行中的字段。

我的代码看起来像atm :(并且不起作用)

if (isset($_POST['maintget']))  
        {

        $rows = $_SESSION["countRows"];
        $chkb_names = $_SESSION["arr_chkb_names"];

        //print_r($chkb_names);

        for ($c = 0; $c<$rows; $c++)
            {

                if(isset($_POST($chkb_names[$c])) && $_POST($chkb_names[$c] == 1))
                {                       
                    $sql    = 'UPDATE testDB SET review_done=? WHERE entry_ID =?';
                    $result = $db->prepare( $sql );
                    $result->bind_param('ii', 1,$chkb_names[$c]);
                    $result->execute(); 
                }
            }
        }

任何帮助都会很好!!! THX

1 个答案:

答案 0 :(得分:0)

您正在使用$_POST( )这是错误的。 $_POST是一个数组

这应该有效

 if (isset($_POST['maintget']))  
    {

    $rows = $_SESSION["countRows"];
    $chkb_names = $_SESSION["arr_chkb_names"];

    //print_r($chkb_names);

    for ($c = 0; $c<$rows; $c++)
        {

            if(isset($_POST[$chkb_names[$c]])
            {                       
                $sql    = 'UPDATE testDB SET review_done=? WHERE entry_ID =?';
                $result = $db->prepare( $sql );
                $result->bind_param('ii', $review=1,$chkb_names[$c]);
                $result->execute(); 
            }
        }
    }