2013-01-17 40 views
0

我试过尽我所能尝试并找出这一个,它可能是相当基本的一些,我寻找的解决方案...我想这是一个简单的填写/电子邮件(我知道如何做电子邮件部分) - 除非它必须由数据库驱动?表单选择选项

基本上,我有一个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文件,我可以通过阵列工作来展示其答案一直ticked-

$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++; 
    } 

我觉得我很接近今天某个时候,但我尝试过各种补丁的时候,我could'nt回到我在那里:(

但我真的不知道该如何任何帮助做到这一点。

非常感谢

安迪

回答

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

您先生,是我的英雄,自从上午9点(英国时间)以来,我一直在这个问题上 - 我决心尝试解决问题,但没有。非常感谢你 – Andy

0

是啊! 嗨安迪 你可以使用in_array cckck如果选项在这个功能... http://php.net/manual/en/function.in-array.php 尝试使用此功能。 Marcus Recck也写了一个很好的解决方案。

有许多函数可以像array_diff一样使用,以提取未选中的选项。

+0

嗨,弗雷德,今天我尝试了in_array,因为某些原因我吮吸数组,特别是循环遍历它们并检索结果!也感谢你的帮助。 – Andy