在PHP中为不同的“复选框”打印不同的结果

Print different results for different "checkbox" in PHP

提问人:fel_ope 提问时间:2/8/2023 更新时间:2/8/2023 访问量:21

问:

我正在做作业,但我被卡住了。

我正在准备一个分为 5 个不同 .php 文件的项目。第一页是介绍页,用户可以在其中键入名称并开始使用。3 个中间页面用于测试和测验。第 5 页也是最后一页是之前测试结果的摘要。第二个测试是 <input type=“checkbox” ...>,根据给出的答案,我想打印不同的结果。

  • 如果 2 个答案正确 echo=“正确”
  • 如果只有 1 个答案是正确的 echo= “”两个答案中的一个是错误的”
  • 如果只选中了 1 个框 echo=“答案不完整”
  • 未选中任何框 echo=“您没有选择任何选项” 这是 HTML
<p>Through mixing which of the following primary colors can the secondary color in the figure be obtained?</p>
<form action="quiz_3.php" method="POST">
<label><input type="checkbox" name="result_quiz_2[]" value="yellow">Yellow</label>
<label><input type="checkbox" name="result_quiz_2[]" value="red">Red</label>
<label><input type="checkbox" name="result_quiz_2[]" value="blue">Blue</label>
  
<input type="submit" value="Confirm & Go to Quiz 3"><br>

在下一页中,我将答案存储在 _SESSION 美元中

<?php
session_start();
$q_2 = $_POST;
if (array_key_exists('result_quiz_2',$q_2))
{
$_SESSION['result_quiz_2'] = $_POST['result_quiz_2'];
}
else $_SESSION['result_quiz_2'] = 0;
?>

我应该在最终文件上写什么来打印出不同的结果?

foreach () 

如果未选中任何框,则不起作用,并且

isset() 

如果两个答案中只有一个是正确的,则将打印“正确”。

非常感谢任何可以提供帮助的人。

PHP HTML 复选框 foreach isset

评论

1赞 CBroe 2/8/2023
如果您在 else 分支中分配一个空数组而不是 0,则 foreach 将正常工作。不要如此随意地切换数据类型!您希望这是在您将处理此内容的地方的一个数组,因此如果没有数据来填充它,它应该是一个数组,而不是完全其他数组。$_SESSION['result_quiz_2']
0赞 fel_ope 2/8/2023
嗯,仍然不确定我是否 100% 理解它,但如果你说“foreach”是要使用的那个,那么我会继续尝试它。感谢您的光临和帮助

答: 暂无答案