我正在开发php-mysql的在线考试系统。该考试将包括多项选择题;我按照以下步骤操作:
1)。我添加了所有问题&他们在数据库表中有多种选择(每个问题有4种选择)。
2)。我提供值1 来更正答案& 值0 错误答案。
3)。当用户点击完成考试按钮时,他们的所有答案将相互添加。例如,
对于这些 3/7 现在任何人都可以告诉我这个过程适用于那种类型的应用程序,或者我需要通过使用其他方法来改进它。提前谢谢。答案 0 :(得分:2)
您的方法似乎很好,但是您需要定义行为来处理通过错误和正确选择回答的问题。
如果每个问题的四个可能答案中只有一个是正确的,那么制作单选题(单选按钮)似乎更合乎逻辑,而不是多选(复选框组)。
显然这是考试技巧的设计问题
答案 1 :(得分:1)
只是几个想法。你是否也将存储个人答案?如果没有,那么您将无法返回并查看/显示用户选择的答案。
如果您使用此方法,请确保响应的表单值不是0
和1
,就像人们对此明智一样,然后他们可能会查看HTML源并作弊。
为防止这种情况,一种方法是为每个表单响应值分配其他/随机值,然后使用PHP检查响应。例如:
<input type="radio" name="q1" value="apples" /> Apples<br />
<input type="radio" name="q1" value="pears" /> Pears<br />
<input type="radio" name="q1" value="oranges" /> Oranges
然后在您的PHP代码中,检查每个答案以确保响应有效并适当增加分数。例如:
if ($_POST['q1'] == 'apples')
{
$score++;
}
我看到一些多项选择问卷会惩罚不正确的答案(例如,您因无效尝试而失去分数)。如果您想阻止人们选择随机答案,这可以提供帮助。当然,为了实现这一点,您还需要允许“不确定”响应(在您的情况下,会导致0
),然后不正确的响应会添加负值。
我希望这会有所帮助
答案 2 :(得分:1)
多项选择测试通常有三种答案:
所以基本上你只需要在数据库中保存正确的答案。我会这样设计表格:
<强>测试强>
ID
名称
受试者
...
<强>问题强>
ID
名称
correct_answer
incorrect_answers(csv?)
<强> test_questions 强>
id_test
id_question
通过这种方法,您可以通过从问题表中选择问题来设计任意数量的问题。您可以只有一个字段用于以逗号分隔的错误答案,因此您可以稍后添加更多字段,而无需向表中添加新列。