我看过checkbox value 0 or 1,但有些困惑。
在数据库中,列hosting
,complete_setup
和legal_compliant
是1
或0
,如果用户选中了该复选框,则会对其进行更新到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
?
谢谢!
答案 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
。