我正在尝试识别使用 PHP 从复选框中选择的多个值

  • 本文关键字:选择 复选框 PHP 识别 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="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!'; 
}
?>

你不能给in_array()多针。

此外,如果同时选择了C/C++Java,则第一个if将成功,因此它永远不会尝试elseif。如果你想要这样的结构,你需要先测试更大的组。

您可以改用嵌套if

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_intersect

if (!empty(array_intersect(['C/C++', 'Java'], $_POST['check_list'])) {
echo 'C/C++ and Java were checked!';
}

最新更新