php - PHP 无法处理复选框
问题描述
我正在尝试获取复选框值并将它们存储在我的数据库中。我正在关注这个https://stackoverflow.com/a/29948042/13695248答案,但我的数据库中总是得到值 1,即使它没有被检查。我检查了网络选项卡,我的所有复选框都显示为“打开”。这就是其中一个的样子:
<div class="form-check">
<input type="checkbox" class="form-check-input" id="front-disc-brake" name="front-disc-brake">
<label class="form-check-label" for="front-disc-brake">Front disc brake</label>
</div>
我试过两种方法:
$front_disc_brake = $_POST['front-disc-brake'] ?? 0;
和:
$front_disc_brake = isset($_POST['front-disc-brake']) ? 1 : 0;
但正如我所说,它始终是 1,无论我是否检查它都没有关系。
解决方案
您需要为复选框分配一个值才能使其工作。
例如:
改变
<input type="checkbox" class="form-check-input" id="front-disc-brake" name="front-disc-brake">
至
<input type="checkbox" class="form-check-input" id="front-disc-brake" name="front-disc-brake" value="1">
然后 isset() 检查将按预期工作。
推荐阅读
- php - fwrite 在 Web 服务器上返回 int(0) 但不在 Wamp 上
- mongodb - 如何使用 3 个集合和 $loop 转换数据
- python - 为什么张量流中的for循环这么慢
- python - 如何更改 pyqt5 QTableWidget 中选定或单击的单元格的背景颜色?
- c - 如何停止或中断获取键盘输入缓冲区其余部分的低级读取功能
- java - 如何使用 DateTimeFormatter 本地化数字?
- asp.net-core - NetCore InputTagHelper 使用反射
- c# - 如果一个单词只包含几个字符,我应该使用哪种正则表达式
- trustpilot - Truspilot 刷新令牌过期时的响应码是什么?
- java - 如何等待封闭的异步块完成