首页 > 解决方案 > 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,无论我是否检查它都没有关系。

标签: php

解决方案


您需要为复选框分配一个值才能使其工作。

例如:

改变

<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() 检查将按预期工作。


推荐阅读