我在2个不同的页面上进行了Moodle测验(第一个问题2个,第二个问题1个),我想找回这3个问题。
我使用此代码:
function getQuiz(IdQuiz){
ajaxRequest("mod_quiz_start_attempt",{quizid:IdQuiz,forcenew:1}).success(function(quiz){
getQuestions(quiz.attempt.id,0);
});
}
function getQuestions(idAttempt,currentPage){
ajaxRequest("mod_quiz_get_attempt_data",{attemptid: idAttempt, page: currentPage}).success(function(response){
console.log(response);
if (response.nextpage > -1){
getQuestions(idAttempt,currentPage+1);
}else{
console.log('stopped');
}
});
}
它正确地获得了第一页的2个第一个问题,但是对于第二个页面,响应没有给我提问但是在控制台上告诉我这个:
Object {exception: "dml_missing_record_exception", errorcode: "invalidrecord", message: "Can not find data record in database table quiz_attempts."}
这很奇怪,因为我在修改第一个函数时工作:
function getQuiz(IdQuiz){
ajaxRequest("mod_quiz_start_attempt",{quizid:IdQuiz,forcenew:1}).success(function(quiz){
getQuestions(quiz.attempt.id,0);
getQuestions(quiz.attempt.id,1);
});
}
(ajaxRequest只是一个向Moodle发送Ajax请求的函数)
答案 0 :(得分:0)
我自己解决了!实际上是因为我试图访问已经完成的测验(代码在我不知情的情况下执行了多次)