0

我已尽力尝试解决这个问题,对于某些人来说这可能是非常基本的,我已经搜索了解决方案......我希望这是一个直接的填写/电子邮件(我知道该怎么做电子邮件部分) - 除非它必须是数据库驱动的?

基本上,我有一个 10 题测验,多项选择 ABCD - 但 ABC 可能是正确的。

我的 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] . " ");
    }
    }

所以,很抱歉胡扯——基本上,我只想说 ABC 是正确的——D 是不正确的,分数加 1。

我想我需要创建一个像这样的“if”语句?

    if (($myresults == 'A') && ($myresults == 'B') && (myresults == 'C'))
    {
    echo "something might have worked!";
    $mycount++;
    }

我想我今天已经很接近了,但是当我尝试各种修复时,我无法回到原来的位置:(

但我真的不确定如何做到这一点。

非常感谢您的帮助

安迪

4

2 回答 2

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++;
}
于 2013-01-17T18:12:25.367 回答
0

是的!嗨,安迪,您可以使用 in_array 来检查此功能是否包含选项... http://php.net/manual/en/function.in-array.php 尝试使用此功能。Marcus Recck 也写了一个很好的解决方案。

有许多函数可以使用,比如 array_diff 来提取未选择的选项。

于 2013-01-17T18:18:34.577 回答