有没有人想出如何使用Moodle函数'mod_quiz_process_attempt'?
我正在探索Moodle Web服务(REST API(,以便请求在Moodle上设置的测验。我正在开发一个Android应用程序,用户可以通过它尝试Moodle测验(问题仅属于多项选择题(。
我已经弄清楚了如何开始测验尝试并检索测验数据,但我无法找到如何通过提供的 REST API 在 Moodle 上保存和处理选定的答案。
Moodle 函数 'mod_quiz_process_attempt' 应该对此负责。根据 Moodle 文档,该函数需要一个名为"data"的参数,它是一个 Name-Value-Objects 数组。
General structure
Default to "Array
(
)
" //the data to be saved
list of (
object {
name string //data name
value string //data value
}
)
我的问题是:我需要将哪些">数据"(哪些名称和值(传递给函数?
您必须使用 :
mod_quiz_save_attempt
在测验期间处理保存请求。此功能适用于 moodle 移动应用程序中的测验自动保存功能
有关更多详细信息,请查看文档。
使用mod_quiz_get_attempt_review
函数。
这将输入一个尝试编号,并将整个尝试作为其余尝试传递给休息调用。
$username = array('attemptid' => $val );//$val contains attempt ID.
$params = array( 'courseids' => $username);
$resp = json_decode(($curl->post($serverurl,$username)),true);
$resp['questions']
给出了问题的详细信息。您可以为每个循环处理所有问题。
查看此函数的文档,以更好地了解可以检索的功能。
尝试的数据的方法:要发送的 http 请求的结构
$data = array();
$data[0]['name'] = "q16:1_answer";
$data[0]['value'] = 1;
$data[1]['name'] = "q16:1_:sequencecheck";
$data[1]['value'] = 1;
$data[2]['name'] = "q16:2_answer";
$data[2]['value'] = 1;
$data[3]['name'] = "q16:2_:sequencecheck";
$data[3]['value'] = 1;
$data[4]['name'] = "q16:3_answer";
$data[4]['value'] = 0;
$data[5]['name'] = "q16:3_:sequencecheck";
$data[5]['value'] = 1;
$data[6]['name'] = "q16:4_answer";
$data[6]['value'] = 0;
$data[7]['name'] = "q16:4_:sequencecheck";
$data[7]['value'] = 1;