首页 > 解决方案 > 从 PHP 中的复选框中检查多个值

问题描述

我有这个表格:

<form action="" method="post">
<input type="checkbox" name="check_list[]" value="0" id="check_list">- 0<br>
<input type="checkbox" name="check_list[]" value="1" id="check_list">- 1<br>
<input type="checkbox" name="check_list[]" value="2" id="check_list">- 2<br>
<input type="checkbox" name="check_list[]" value="3" id="check_list">- 3<br>
<input type="checkbox" name="check_list[]" value="4" id="check_list">- 4<br>
<input type="checkbox" name="check_list[]" value="5" id="check_list">- 5<br>
<input type="checkbox" name="check_list[]" value="6" id="check_list">- 6<br>
<input type="checkbox" name="check_list[]" value="7" id="check_list">- 7<br><br>
<input type="submit" name="submit" Value="Submit"/>
</form>

现在我不会检查这个表单的结果,如果结果有(2,3,6)我们需要做一些事情,如果结果有价值(2,3)我们需要做一些事情,如果结果有价值( 2)我们需要做一些事情,如果结果有价值(3)我们需要做一些事情,如果结果有价值(6)我们需要做一些事情,

如何在 php 中做到这一点?

我试试这个,但对我不好

if(!empty($_POST['check_list'])) {

    foreach($_POST['check_list'] as $check) {
    if ($check =='2' && $check =='3' && $check =='6'){
        // do something
    } elseif ($check =='2' && $check =='3'){
        // do something
    } elseif ($check =='6'){
        // do something
    } elseif ($check =='3'){
        // do something
    } elseif ($check =='2'){
        // do something
    }
}
}

我也试试这个,不做任何事情

if(in_array(array(2,3,6),$_POST['check_list'])){ 
// not work
} elseif(in_array(array(2,3),$_POST['check_list'])){ 
// not work
} elseif(in_array(array(2),$_POST['check_list'])){ 
// work
} elseif(in_array(array(3),$_POST['check_list'])){ 
// work
} elseif(in_array(array(7),$_POST['check_list'])){ 
// work
}

标签: phphtmlarrays

解决方案


简而言之,当您提交表单时,您将拥有一个$_POST['check_list']包含您检查过的元素的数组。因此,如果您检查 2、3 和 6 $_POST['check_list'] = [2, 3, 6],. 请注意,如果您不选中任何选项,$_POST['check_list']则将不存在。

然后,例如,如果选中 2,您可以使用它if (in_array(2, $_POST['check_list'])) {...}来执行您想要的操作。


推荐阅读