复选框总是“;关于“;发送到php时


Checkbox always "on" when sending to php

我的html 中有这个复选框

<input name="cb" class="cmn-toggle cmn-toggle-round" type="checkbox">

我对复选框的工作原理的理解是,当"选中"时,如果你设置了输入,它就会"存在",如果没有"选中",它就不会,所以我这样做了:

if(isset($_REQUEST['cb'])){
   //do something
}else{
  //do something else
}

问题是,在发送表格时,它总是存在的,无论是否检查,我都不知道如何真正查看是否真的检查过,那么我做错了什么?

isset()确定变量是否已设置且不为NULL。因此,在您的情况下,$_REQUEST['cb']始终存在,因此isset()将为真。因此,如果您的条件中有isset(),则需要添加一个检查,无论该值是true还是false。

您需要将您的条件编辑为:

if($_REQUEST['cb']) { ...

if($_REQUEST['cb'] == true){ ...

最好的方法是使用isset和上面的检查:

if( isset($_REQUEST['cb']) && $_REQUEST['cb'] == true ) { ...

你可以像这样检查

if(isset($_REQUEST['cb']) && $_REQUEST['cb']){