表单中具有错误值的复选框

Checkbox with false value in form

我需要发送 post false 复选框的值 默认情况下未选中。 我的复选框定义如下:

<label><input type="checkbox" id="rez" name="rezerwowanie" value="false" />Rezerwowanie</label>

提交后我使用该代码检查复选框是否被选中:

$Reservation = $_POST['rezerwowanie'];
    if ($Reservation == false) {
        $Reservation = 0;
    } else
    {
        $Reservation = 1;
    }

当我选中复选框时它可以工作,但如果不选中它就不起作用。这里有什么问题?

复选框在激活时只向服务器发送一个值。所以不勾选的时候,$_POST['rezerwowanie']就不会出现。您的代码需要考虑到这一点。检查数组元素是否设置会给你相同的结果。

$Reservation = isset($_POST['rezerwowanie']);
if ($Reservation == false) {
    $Reservation = 0;
} else
{
    $Reservation = 1;
}

完成此操作的更简单方法:

$Reservation = isset($_POST['rezerwowanie']) ? 0 : 1;

如果用户没有选中复选框,$Reservation 将等于 0。根据您的需要,我可能会有倒退的逻辑,但总体思路是正确的。 不需要 if else 语句。