我已经尽力尝试将这一点弄清楚了,对某些人来说可能是非常基本的,我已经搜索了解决方案......我希望这是一个直接的填写/电子邮件(我知道)如何做电子邮件部分) - 除非必须由数据库驱动?
基本上,我有一个10个问题测验,多项选择A B C D - 但A B C可能是正确的。
我的HTML是(打破了)
<input type="checkbox" name="question1[]" id="question1" value="A" />
<label for="question1">A) Do you like this </label>
<input type="checkbox" name="question1[]" id="question1" value="B" />
<label for="question1">A) Do you like this as well </label>
<input type="checkbox" name="question1[]" id="question1" value="C" />
<label for="question1">A) Do you like this as well well </label>
<input type="checkbox" name="question1[]" id="question1" value="D" />
<label for="question1">A) Do you like this as well well well </label>
所以,这个'发布'到另一个php文件,我可以通过数组来显示已经勾选了哪个答案 -
$myresults = $_POST['question1'];
if(empty($myresults))
{
echo("You didn't answer in this section.");
}
else{
$N = count($myresults);
echo "<strong>Section 1:</strong> You selected $N answers: ";
for($i=0; $i < $N; $i++)
{
echo($myresults[$i] . " ");
}
}
所以,抱歉胡扯 - 基本上,我只是想说A B C是正确的 - D不正确,加1得分。
我想我需要创建一个类似这样的'if'语句?
if (($myresults == 'A') && ($myresults == 'B') && (myresults == 'C'))
{
echo "something might have worked!";
$mycount++;
}
我想我今天在某些方面已经非常接近了,但当我尝试各种修复时,我无法回到原来的位置:(
但我真的不确定如何做到这一点。
非常感谢您的帮助
安迪
答案 0 :(得分:0)
您可以将答案组合在一起并检查它。
sort($myresults);
$answers = implode($myresults);
if($answers == 'ABC'){
echo 'Correct answers!';
$mycount++;
}
或者您可以检查自己的阵列。
sort($myresults);
if($myresults == array('A','B','C')){
echo 'Correct answers!';
$mycount++;
}
答案 1 :(得分:0)
呀! 嗨,安迪 如果选项包含在此函数中,您可以使用in_array来ckeck ... http://php.net/manual/en/function.in-array.php 尝试使用此功能。 Marcus Recck也写了一个很好的解决方案。
有许多函数可供使用,如array_diff来提取未选中的选项。