数据库中的 PHP 复选框,提交后未选中


PHP Checkbox from db, unchecked after submit

我有这个代码。我需要即使在提交页面后,我选择的所有复选框(由数据库采用)仍保持选中状态。我该怎么做?

?>
<?php
function connetti(){
$conn=mysql_connect("localhost","user","pass");
mysql_select_db('colours');
return $conn;
}
?>
<html>
<head>
<title>Scelta colori</title>
<meta charset="utf-8">
</head>
<body>
    <h1>Scelta colori</h1>
    <h1>Benvenuto <?php echo $_SESSION['user']; ?></h1><br>
    <form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="post">
        <?php
            $conn=connetti();
            $sql="SELECT tonalita FROM colori";
            $risultato=mysql_query($sql);
            while ($row=mysql_fetch_array($risultato)){
            $valore=$row['tonalita'];
            echo('<input type="checkbox"  value="'.$valore.'" name="colori[]">'.$valore.'</input><br>');  
                    }
            mysql_free_result($risultato);
            mysql_close($conn);
        ?>

        <input type="submit" value="Invia">
        <input type="reset" value="Annulla">
    </form>
</body>
</html>

您可以在

提交表单后使用$_POST变量并检查$valore

<?php
echo('<input type="checkbox"  value="'.$valore.'" name="colori['.$valore.']"'.((isset($_POST["colori"][$valore])&&$_POST["colori"][$valore]==$valore)?' checked="checked"':"").'>'.$valore.'</input><br>');  
?>

未测试但应该工作

编辑:在名称上出现错误,并修复了非 Settet 索引上的问题。 PHP5 上的测试组