表单中带有假值的复选框


Checkbox with false value in form

我需要发送与帖子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']将不存在。您的代码需要考虑到这一点。 检查数组元素 isset 是否会给您相同的结果。

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

实现此目的的更简单方法:

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

如果用户未选中该复选框,$Reservation将等于 0。我可能会根据您的需要将逻辑倒过来,但总体思路是正确的。如果不需要其他声明,则无需。