如何从复选框中获取未选中的值?

use*_*856 4 php checkbox

我有一个复选框列表,当我选中复选框时,它应该将值插入数据库.当我取消选中该复选框时,它应该是从数据库中删除数据.

如果我在复选框中指定一个值,那么我只能获得选中的复选框值.如果我使用隐藏字段然后我可以得到所有值的复选框,但然后我不知道哪1是检查,哪1是取消选中.

有人可以帮忙吗?

    $num="3";  
    for($i=1;$i<10;$i++){
    ?>
    <form name="form1" method="post" action="testcheckbox.php"> 
        <input type="hidden" name="task" value="validatesn">
        <input type="hidden" name="validate[]" value="<?php echo $i;?>">
        <input type="checkbox" name="validate[]" <?php if($num==$i){ echo "checked=checked";} ?> />Serialno<?php echo $i."<br/>"; ?>
    <?php
        $i++;
    }   
    ?>
        <input type="submit" name="submit" value="Validate" />
    </form>

    <?php
    if($_REQUEST['task'] == 'validatesn'){
       $valid=$_POST['validate'];
       foreach($valid as $v){
           echo $v;  //show all checkbox values
           //if checkbox= checked then insert value into database
           //if untick the checked checkbox then delete data from database
    }
  }
?>
Run Code Online (Sandbox Code Playgroud)

F21*_*F21 6

复选框的标记如下所示:

<input type="checkbox" value="myvalue" name="validate[]">
Run Code Online (Sandbox Code Playgroud)

当您张贴的形式,你会看到一个名为阵列validate$_POST.

如果该数组为空,则不检查该复选框.如果该数组包含"myvalue",则选中该复选框.

如果您正在处理多个这样的复选框:

<input type="checkbox" value="myvalue1" name="validate[]">
<input type="checkbox" value="myvalue2" name="validate[]">
Run Code Online (Sandbox Code Playgroud)

您的脚本需要知道validate数组中的$_POST值可以包含myvalue1myvalue2.然后你可以查看$_POST['validate'],如果数组中存在该值,则选中该复选框.您可以使用array_diff()轻松地做到这一点,而无需编写任何循环.