形成多种选择

时间:2013-01-17 18:06:37

标签: php arrays forms

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

基本上,我有一个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++;
    }

我想我今天在某些方面已经非常接近了,但当我尝试各种修复时,我无法回到原来的位置:(

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

非常感谢您的帮助

安迪

2 个答案:

答案 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来提取未选中的选项。