0

さまざまなボタンを持つ行がいくつかあります。ボタンをクリックすると、その行の正解かどうかがチェックされます。これは私がすでに取り組んでいます。私が理解できないのは、その正しいボタン(またはその点で間違っている)に別の色を与える方法であり、ユーザーが正しい(または間違っている)ことを示しています。何か案は?

これは私のコントローラーにあります:

//function for press exercises: exercises where you make decissions between buttons
public function press($ped_mat_id)
{
    if($this->input->post('answer'))
    {
        $answer = $this->input->post('answer');
        $evaluation = $this->Exercise->check_exercise_row($answer);

        if($evaluation)
        {
            //Code when the answer is correct
            echo 'correct';
            echo '<style type="text/css">
                button {
                    background-color: #11eb00 !important;
                }
                </style>';
        }
        else
        {
            //Code when the answer is wrong
            echo 'fout';
            echo '<style type="text/css">
                button {
                    background-color: #eb0000 !important;
                }
                </style>';
        }
    }   

    $this->_load_views('Oefen', 'exercises/press.php', $ped_mat_id);
}

これは私のモデルにあります:

public function check_exercise_row($answer)
{
    $arr_answer = explode(',', $answer);
    $given_answer = $arr_answer[0];
    $exercise_id = $arr_answer[1];

    $result = $this->_get_solution($exercise_id);

    foreach ($result as $row) 
    {
        $instruction = $row->exercise_instruction;
        $solution = $row->exercise_solution;    
    }

    $arr_instruction = explode(',',$instruction);

    $is_correct = false;

    if($given_answer == $arr_instruction[$solution])
    {
        $is_correct = true;
        $this->_insert_answer($given_answer, $exercise_id,$is_correct);
        return $is_correct;
    }
    else
    {
        $this->_insert_answer($given_answer, $exercise_id,$is_correct);
        return $is_correct;
    }
}

これは私の見解です:

<?php 
                    $dump = '<ul>';

                    foreach ($result as $row)
                    {
                        $label = $row->exercise_id;             

                        $arr_instructions = explode(',', $row->exercise_instruction);

                        $dump .= '<li><label>' . $label . '</label>';

                        foreach ($arr_instructions as $instruction)
                        {
                                                            if (in_array($label, $log) )
                            {
                                $dump .= '<button type="submit" disabled="disabled" name="answer" value="' . $instruction . ',' . $label .'">' . $instruction . '</button>';
                            }
                            else
                            {
                                $dump .= '<button type="submit" name="answer" value="' . $instruction . ',' . $label .'">' . $instruction . '</button>';    
                            }

                        }

                        $dump .= '</li>';
                    }
                    $dump .= '</ul>';
                    echo $dump;
                ?>

編集: 私は jQuery event.target のものを調べてきました。そして、私はそれで作業できるはずですが、どのように開始すればよいかわかりません。誰でもしますか?

4

1 に答える 1

0

あなたの最善の策は、特定のボタンにクラスを追加し (つまり、「正しい」または「正しくない」)、関連する CSS をスタイルシートに追加することです。

.correct{
    colour: #11eb00;
}
.incorrect{
    colour: #eb0000;
}
于 2013-05-23T12:11:49.893 に答える