我正在尝试使用PHP识别从复选框中选择的多个值
我正在尝试使用PHP识别从复选框中选择的多个值,下面是我的代码,您可以看到我在选择Java和C/C++时尝试创建自定义字符串我正在尝试使用PHP识别从复选框中选择的多个值,php,html,Php,Html,我正在尝试使用PHP识别从复选框中选择的多个值,下面是我的代码,您可以看到我在选择Java和C/C++时尝试创建自定义字符串 <form action="#" method="post"> <input type="checkbox" name="check_list[]" value="C/C++"><label>C/C++</label><br/> <input type="checkbox" name="ch
<form action="#" method="post">
<input type="checkbox" name="check_list[]" value="C/C++"><label>C/C++</label><br/>
<input type="checkbox" name="check_list[]" value="Java"><label>Java</label><br/>
<input type="checkbox" name="check_list[]" value="PHP"><label>PHP</label><br/>
<input type="submit" name="submit" value="Submit"/>
</form>
<?php
if(isset($_POST['submit'])){//to run PHP script on submit
if(!empty($_POST['check_list'])){
// Loop to store and display values of individual checked checkbox.
foreach($_POST['check_list'] as $selected){
echo $selected."<br>";
}
}
}
if(in_array('C/C++', $_POST['check_list'])) {
echo 'C/C++ was checked!';
} elseif(in_array('C/C++','Java',$_POST['check_list'])){
echo 'C/C++ and Java was checked!';
}
?>
C/C++
Java
PHP
您不能给阵列()中的多针。
此外,如果同时选择了C/C++
和Java
,则第一个if
将成功,因此它将永远不会尝试elseif
。如果您想要这样的结构,您需要首先测试较大的组
如果,则可以使用嵌套的
if(in_array('C/C++', $_POST['check_list'])) {
if (in_array('Java', $_POST['check_list'])) {
echo 'C/C++ and Java were checked!';
} else {
echo 'C/C++ was checked!';
}
}
测试数组中是否有多个项目的更通用方法是使用array\u intersect
:
if (!empty(array_intersect(['C/C++', 'Java'], $_POST['check_list'])) {
echo 'C/C++ and Java were checked!';
}