2013-01-17 3 views
0

J'ai fait de mon mieux pour essayer de comprendre cela, et c'est peut-être assez basique pour certains, j'ai cherché des solutions ... Je veux que ce soit simple à remplir/email (je sais comment faire la partie email) - à moins qu'il ne soit piloté par une base de données? Fondamentalement, j'ai un questionnaire de 10 questions, choix multiple A B C D - cependant A B C pourrait être correct.Formulaire des options à choix multiples

Mon html est (tombé en panne)

<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> 

Alors, ce « postes » vers un autre fichier php et je peux travailler à travers le réseau pour montrer quelle réponse a été 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] . " "); 
    } 
    } 

Donc, désolé pour les gaufres - fondamentalement, je veux juste dire ABC sont corrects - D est incorrect, ajouter 1 à la partition.

Je pense que je dois créer une instruction 'if' quelque chose comme ça?

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

Je pense que je suis assez proche à un moment donné aujourd'hui, mais le temps que j'ai essayé diverses corrections, je ne pouvions pas revenir là où j'étais :(

Mais je suis vraiment pas sûr comment faire.

Un grand merci pour toute aide

Andy

Répondre

0

Vous pouvez combiner les réponses ensemble et vérifier cette façon.

sort($myresults); 

$answers = implode($myresults); 

if($answers == 'ABC'){ 
    echo 'Correct answers!'; 
    $mycount++; 
} 

Ou vous pouvez vérifier par rapport à votre propre tableau.

sort($myresults); 

if($myresults == array('A','B','C')){ 
    echo 'Correct answers!'; 
    $mycount++; 
} 
+1

Vous êtes mon héros, je suis là depuis 9 heures (heure du Royaume-Uni) - j'étais si déterminé à essayer de le résoudre, mais ne l'ai pas fait. Merci beaucoup – Andy

0

Yeah! Bonjour Andy vous pouvez utiliser in_array pour vérifier si les options sont dans cette fonction ... http://php.net/manual/en/function.in-array.php Essayez d'utiliser cette fonction. Marcus Recck écrit aussi une excellente solution.

Avoir beaucoup de fonctions à utiliser comme array_diff pour extraire les options non sélectionnées.

+0

Salut Fred, j'ai essayé in_array aujourd'hui, je ne pouvais tout simplement pas comprendre ce que je faisais, pour une raison quelconque, je crains les tableaux, surtout en les parcourant et en récupérant les résultats! merci pour votre aide aussi. – Andy

Questions connexes