首页 > 解决方案 > PHP / MySQL - 复选框值返回 0 和 1

问题描述

我查看了复选框值 0 或 1,但有点困惑。

在 DB 中,列hostingcomplete_setuplegal_compliant10,如果用户选中该复选框,它会将其更新为 1:

<div class="form-group <?php echo (!empty($complete_setup_err)) ? 'has-error' : ''; ?>">
    <label>Complete Setup</label>
    <input type="checkbox" class="form-control" name="complete_setup" value="1" />
    <span class="help-block"><?php echo $complete_setup_err; ?></span>
</div>

但我想要的是,如果在数据库中它已经是1已经被选中的复选框,如果它未被选中,它将数据库更新为 0。我如何让它返回值0

谢谢!

标签: phpmysql

解决方案


问题是未选中的复选框根本不会发送到服务器。这意味着如果检查,则变量是发布值的一部分,如果未检查,则不会发送。您可以在客户端修改该行为,但在接收服务器端简单地评估给定信息要容易得多:

您可以评估该变量是否存在于发布的变量中:

$isChecked = (isset($_POST['complete_setup']) && $_POST['complete_setup'] == 1) ? 1 : 0;

要控制在您分发表单时复选框是否已被选中,需要主动将复选框标记为选中:

<?php $isChecked = ($row['complete_setup'] == 1) ? 'checked' : ''; ?>
<input type="checkbox" class="form-control" name="complete_setup" value="1" checked="<?php echo $isChecked ?>"/>

这假设您将数据库表的内容读入某个数组$row,然后该数组应包含1数组元素中的值complete_setup


推荐阅读