php - PHP / MySQL - 复选框值返回 0 和 1
问题描述
我查看了复选框值 0 或 1,但有点困惑。
在 DB 中,列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
?
谢谢!
解决方案
问题是未选中的复选框根本不会发送到服务器。这意味着如果检查,则变量是发布值的一部分,如果未检查,则不会发送。您可以在客户端修改该行为,但在接收服务器端简单地评估给定信息要容易得多:
您可以评估该变量是否存在于发布的变量中:
$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
。
推荐阅读
- javascript - 如何使用 React 单击文档中的任意位置时关闭侧面板?
- azure - Microsoft 密码重置 - 包含重置后重定向 URI 的传递参数
- javascript - 在 JQuery 日期选择器上禁用 MySQL 数据库中的日期
- python - Flask API - 列出所有添加的资源
- ios - 可以在没有开发人员帐户的情况下使用推送通知吗?
- javascript - Jquery 从 if 语句中获取“this”
- python - 如何在 tkinter 中创建带有图像的按钮滑块?
- android - 我的其他应用未检测到模拟位置
- rest - 使用 .Net Identity Framework 保护 Rest API 内容
- css - HTML Canvas 在右下角对齐 DIV