【问题标题】:Php keep checkboxes checked after form error表单错误后PHP保持复选框选中
【发布时间】:2016-11-12 09:54:39
【问题描述】:

表单提交错误后,如何保持选中的复选框处于选中状态?现在,我收到此错误消息:警告: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>

【问题讨论】:

    标签: checkbox checked


    【解决方案1】:

    一行

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

    定义$ertek。如果帖子不存在,则将其定义为空字符串。您应该使用一个空数组。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 2015-01-22
      • 2017-05-20
      • 1970-01-01
      • 2017-12-17
      相关资源
      最近更新 更多