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この関数を 使用してみてください。MarcusRecckも優れたソリューションを作成しています。

選択されていないオプションを抽出するためにarray_diffのように使用する多くの関数があります。

于 2013-01-17T18:18:34.577 に答える