私は100問の多肢選択式クイズに取り組んでいます(5つのタブに20問が表示されます)。人々がページソースで答えを見ることができれば問題ありません-これは単なる練習です。
私が現在持っているのは、質問、4つのラジオボタン、および送信ボタンを含む行を表示するphp配列(現在、5つの「テスト」質問のみ)です。アイデアは、ユーザーが質問を読み、回答を選択して送信することです。答えが正しければ、ラジオボタンは緑色で表示されます。間違っている場合は、ラジオボタンが赤に変わり、ユーザーは再試行します。
これが私のPHPコードの主要部分です:
<?php
$set = array();
$set[] = array('q'=>'Question1','qurl'=>'001','ans'=>'zhidao','a'=>'zhidao','b'=>'zhidou','c'=>'zhedao','d'=>'zhedau');
$set[] = array('q'=>'Question2','qurl'=>'002','ans'=>'dajia','a'=>'dazha','b'=>'dajia','c'=>'taqia','d'=>'tazha');
$set[] = array('q'=>'Question3','qurl'=>'003','ans'=>'boduo','a'=>'bodou','b'=>'buoduo','c'=>'boduo','d'=>'buodo');
$set[] = array('q'=>'Question4','qurl'=>'004','ans'=>'wanhuan','a'=>'wanchuan','b'=>'wanhuan','c'=>'wanchun','d'=>'wachuan');
$set[] = array('q'=>'Question5','qurl'=>'005','ans'=>'zhangkou','a'=>'zhongkou','b'=>'zhangko','c'=>'zhangkuo','d'=>'zhangkou');
shuffle($set);
?>
<form>
<table>
<tr class="q0">
<td><td><a class="question" href="#">Question goes here</a></td></td>
<td><input class="radiostyle" type="radio" name="answers" value ="zhidao" /> zhidao</td>
<td><input class="radiostyle" type="radio" name="answers" value ="zhidou" /> zhidou</td>
<td><input class="radiostyle" type="radio" name="answers" value ="zhedao" /> zhedao</td>
<td><input class="radiostyle" type="radio" name="answers" value ="zhedau" /> zhedau</td>
<td><input class="submit submit-0" type="submit" value="Submit" /></td>
</tr>
これが私のjQueryです:
function checkAnswer(set) {
if (set == 2) { /* if this is question set 2 out of the 5 kinds of questions */
$('#questions .submit').click(function(e){
var q = $(this).attr('class').split(' ')[1].split('-')[1];
$('#questions .q'+q+' input').removeClass('radiowrong');
var ans = $("input[@name=answers]:checked").val();
if (ans == jset[q]['ans']) {
$('#questions .q'+q+' .radiostyle').addClass('radioright');
alert('correct!');}
else {
$('#questions .q'+q+' .radiostyle').addClass('radiowrong');}
e.preventDefault();
});
}
}
今、私はjQueryをあまり使ったことがないので、初心者と考えてください。コードが非効率に見える場合は、お詫び申し上げます。私のコードについて2つの主な質問があります:
まず、checkAnswer関数を正しく機能させるのに苦労しています。ロジックが正しいかどうかを確認するためにアラートを挿入しましたが、成功しませんでした。これを機能させる方法について何か提案はありますか?
次に、ラジオボタンのクラスを適切に変更できるようにjQueryを変更するにはどうすればよいですか?繰り返しになりますが、ユーザーが正しい答えを選択した場合はラジオボタンを緑色にし、間違った場合は赤色にすることを目指しています。
(知っておいてください:ユーザーが正しいか間違っているかをユーザーに示す簡単な方法がある場合-ユーザーが選択した回答のテキストの色を変更するなど-私はすべての耳です。本当に何でも十分です。)
さらに情報を提供する必要がある場合は、お知らせください。
大変感謝します。