如何使用AJAX将多个FormData对象发送到服务器并访问服务器上的这些对象

时间:2015-01-18 22:47:24

标签: javascript php jquery ajax cakephp

我正在努力开发一个教师可以为学生创建测验的页面。为了达到这个目的,页面上有两种形式。一种形式用于创建实际测验,另一种用于创建测验中的问题。

每当教师向测验添加问题时,都会调用一个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"];
        ...
    }
}

0 个答案:

没有答案