如何在复选框数组中引用特定值?我正在尝试创建一个网页,当用户单击一个或多个复选框时显示回显消息。
例:
网页
[ ] 笔
[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 以获取所有选定的选项