(PHP) 如何在复选框中引用特定的数组值?

  • 本文关键字:数组 引用 PHP 复选框 php
  • 更新时间 :
  • 英文 :


如何在复选框数组中引用特定值?我正在尝试创建一个网页,当用户单击一个或多个复选框时显示回显消息。

例:

网页

[ ] 笔

[x] 铅笔

[x] 橡皮擦

[ ] 标尺

[提交按钮]

输出:

  • 你需要铅笔
  • 你需要橡皮擦

所以这是我想出的:

.HTML

<form action="email.php" method="post">
<input type="checkbox" name="options[]" value="pen"> pen <br>
<input type="checkbox" name="options[]" value="pencil"> pencil <br>
<input type="checkbox" name="options[]" value="eraser"> eraser <br>
<input type="checkbox" name="options[]" value="ruler"> ruler <br>
<input type="submit" name="submit" value="submit"> <br>
</form>

.PHP

<?php
$need = $_POST['options'];
if(isset($_POST['submit'])){
if(!empty($_POST['options'])){
if($need == "pen"){
echo "you need pen ";
}
elseif($need == "pencil"){
echo "you need pencil";
}
elseif($need == "eraser"){
echo "you need eraser";
}
elseif($need == "ruler"){
echo "you picked ruler";
}
else{
echo "you must pick atleast one";
}
}
}
?>

根据我的代码,我哪里出错了?有没有更好的方法呢?

我仍然是 php 和堆栈溢出的新手,所以为我的错误道歉。

你在 PHP 中执行的代码的问题在于$_POST['options']将是数组类型。 所以为了完成这项工作,代码应该是

<?php
if(isset($_POST['submit'])){
$need = $_POST['options']; 
if(!empty($need)){
foreach($need as $n){
if($n == "pen"){
echo "you need pen ";
}
if($n == "pencil"){
echo "you need pencil";
}
if($n == "eraser"){
echo "you need eraser";
}
if($n == "ruler"){
echo "you picked ruler";
}
}
}
else{
echo "you must pick atleast one";
}
}
?>

试试这个,这应该有效。

请注意,我还将 elseif 更改为 if 以获取所有选定的选项

最新更新