我正在努力开发一个教师可以为学生创建测验的页面。为了达到这个目的,页面上有两种形式。一种形式用于创建实际测验,另一种用于创建测验中的问题。
每当教师向测验添加问题时,都会调用一个JS函数,该函数将问题数据本地保存在FormData对象中,然后将其放入一系列问题中。请记住,问题表单上的一个输入是文件输入。
当教师最终提交测验时,我使用一个AJAX调用将两个项目发送到服务器:一个包含测验数据的FormData对象和一个FormData对象数组,其中包含有关测验问题的信息。
我的问题是:如何在服务器上访问这些不同的对象?我正在使用CakePHP,所以我最初的想法是$this->request->data["quiz"]
和$this->request->data["questions"]
,但我一直没有找到"索引测验/问题"错误。我有更好的方式发送这些数据吗?非常感谢您提供的任何帮助。
的Javascript
var questions = [];
var currentQuizQuestion = 0;
function saveNewQuestion()
{
var formData = new FormData(document.getElementById("inputQuestionForm"));
questions[currentQuizQuestion] = formData;
currentQuizQuestion++;
}
function saveQuiz()
{
var quizData = new FormData(document.getElementById("inputQuizForm"));
$.ajax({
type: "POST",
url: "create",
data:
{
quiz: quizData,
questions: questions
},
processData: false,
contentType: false
});
}
CakePHP的
public function create()
{
if($this->request->is("post"))
{
$quiz = $this->request->data["quiz"];
$questions = $this->request->data["questions"];
...
}
}