PHP设置不支持复选框



我有一个表单,人们需要提交信息。这部分代码没有按照我想要的方式工作,我不知道为什么…

if (!isset($_POST['maandag']) && !isset($_POST['dinsdag']) && !isset($_POST['geenvoork']))
{
    echo "Je bent vergeten in te vullen wanneer je aanwezig bent.";
}

帖子在表单的其余部分工作,并且是正确的。我想要检查的是这3个复选框是否没有被选中。我做错了什么?

您可以尝试做一个print_r($_POST),看看字段的值是什么。这可以帮助您确定提交/字段值发生了什么。

如果它们在您的表单中,那么它们将被设置。您可能想要检查它们是否为假。以下是其中一个,您可以将其他组合起来:

if( !isset($_POST['maandag']) || !$_POST['maandag'] ) { 
     // do something
}

其次,这样的代码意味着只有当none复选框被设置时,您才会得到消息。我不确定,但如果你试图抛出一个错误消息,你不希望它,如果其中任何一个没有设置?在这种情况下,您需要||(或)而不是&&(和)。

你的编码让事情变得复杂。,,

try like

<input type="checkbox" name="test[]"  value="1"/>
<input type="checkbox" name="test[]" value="2"/>
<input type="checkbox" name="test[]" value="3"/>

提交值并获取结果

在HTML中为你的复选框设置合适的值。

<input type="checkbox" ... value="1">

你目前接受的解决方案只是使PHP代码复杂化。

我刚刚对我正在使用的复选框进行了检查,以下是值:

<input id="Isolated1" type="checkbox" value="1" name="Isolated1"></input>

如果输入被选中,下面的计算结果为:

isset( $_POST["Isolated1"] )
//True
( $_POST["Isolated1"] )
//True

当输入不被检查时:

isset( $_POST["Isolated1"] )
//False
( $_POST["Isolated1"] ) 
//Notice: Undefined index

因此,我建议使用empty()函数,同时检查变量是否不存在或其值是否为FALSE

正如prisoner所说,您需要检查它是否为空(),尽管如果它根本没有设置,这可能会给您一个通知。

您的if要求:

isset($_POST['checkbox']) && !empty($_POST['checkbox'])
编辑:愚蠢的我,你的权利,它不返回任何东西。用下面的print_r检查你的帖子听起来是最好的选择。

实际上应该可以…

你总是可以为你的复选框设置一个值,并特别检查该值是否返回:

<input type="checkbox" name="maandag"  value="1"/>
<?php if(isset($_POST['maandag']) && $_POST['maandag'] != '1') { /* ... */ }

最新更新