在表单错误后检查Php保持复选框

时间:2016-07-10 08:51:37

标签: checkbox checked

在表单提交错误后,如何保持选中的复选框?现在,我收到此错误消息:警告:in_array()期望参数2是数组,字符串在

中给出

谢谢!

    function runsql_array($sql)
{
    global $kapcs;
    $res = mysqli_query($kapcs , $sql) or die(mysqli_error( $kapcs));
    if (mysqli_num_rows($res) == 0)
    {
        return array();
    }
    else
    {
        $out = array();
        while ($a = mysqli_fetch_assoc($res))
        {
            $out[] = $a;
        }
        return $out;
    }
}

    <td>
                    <?php
                    $ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : '' ;
                    $values = runsql_array("SELECT termek_tipus_id, termek_tipus_nev FROM termek_tipusok WHERE termek_tipus_status = 1 
                    ORDER BY termek_tipus_nev ASC");

                    foreach($values as $val=>$szoveg)
                    {

                        $checked = in_array($val, $ertek) ? ' checked ' : '' ;

                        echo '<div style="margin:4px 0;"><label style="cursor:pointer;" for="tulajdonsag-'.$val.'">';
                            echo '<input id="tulajdonsag-'.$val.'" type="checkbox" name="termek_tul_tipusok[]" '.$checked.' value="'.$val.'" />';
                            echo $szoveg['termek_tipus_nev'];
                        echo '</label></div>';
                    }

                    ?>
                  </td>

1 个答案:

答案 0 :(得分:0)

$ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : '' ;

定义$ertek。并且在后dosnt存在的情况下将其定义为空字符串。你应该使用一个空数组。

$ertek = isset($_POST["termek_tul_tipusok"]) ? $_POST["termek_tul_tipusok"] : array() ;