PHP / MySQL-复选框值返回0和1

时间:2018-12-16 09:53:40

标签: php mysql

我看过checkbox value 0 or 1,但有些困惑。

在数据库中,列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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

$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