2013-04-29 70 views
0

这样做是如何基于这些数据生成XML文件的?使用PHP从JQuery创建XML

$("#savequiz").click(function(){ 
    var text = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><quiz>"; 
    // save the general settings 
    text += "<title><![CDATA[" + $('input[name="title"]').val() + "]]></title>"; 
    text += "<time><![CDATA[" + $('input[name="time"]').val() + "]]></time>"; 

    text += "<singlechoice><![CDATA[" + $('input[name="singlechoice"]').val() + "]]></singlechoice>"; 
    text += "<multiplechoice><![CDATA[" + $('input[name="multiplechoice"]').val() + "]]></multiplechoice>"; 
    text += "<nextbutton><![CDATA[" + $('input[name="nextbutton"]').val() + "]]></nextbutton>"; 
    text += "<prevbutton><![CDATA[" + $('input[name="prevbutton"]').val() + "]]></prevbutton>"; 
    text += "<finishbutton><![CDATA[" + $('input[name="finishbutton"]').val() + "]]></finishbutton>"; 
    text += "<startbutton><![CDATA[" + $('input[name="startbutton"]').val() + "]]></startbutton>"; 
    text += "<reviewbutton><![CDATA[" + $('input[name="reviewbutton"]').val() + "]]></reviewbutton>"; 
    text += "<resultscreentitle><![CDATA[" + $('input[name="resultscreentitle"]').val() + "]]></resultscreentitle>"; 
    text += "<resultscreenresultline><![CDATA[" + $('input[name="resultscreenresultline"]').val() + "]]></resultscreenresultline>"; 
    text += "<welcometext><![CDATA[" + $('textarea[name="welcometext"]').val() + "]]></welcometext>"; 
    for(var i = 0; i < questions.length; i++) { 
     var q = questions[i]; 
     var answers = q.getAnswers(); 
     text += "<question><![CDATA[" + q.getQuestion() + "]]>"; 
     for(var n = 0; n < answers.length; n++){ 
      text += "<answer correct='" + answers[n].getCorrect() + "'>"; 
      text += "<![CDATA[" + answers[n].getAnswer() + "]]></answer>"; 
     }; 
     text +="</question>"; 
    }; 
    text +="</quiz>"; 

    // save to file: 
    $.ajax({ 
     type: 'POST', 
     url: "savequiz.php", 
     dataType: 'json', 
     data: "filename=" + filename + ".xml" + "&quiz=" + text, 
     success: function (text) { 
      //console.log(text.errors); 
      //console.log(text.feedback); 
      if(text.feedback == "saved") respondChangedState(false); 
     } 
    }); 

PHP文件将如何看起来能够检索信息,然后将其保存到同一文件夹中的文件?

+0

为什么不通过JSON传递信息,然后在PHP文件中创建传递信息的文件结构? – silentw 2013-04-29 13:34:29

+0

在你的'savequiz.php'中做'var_dump($ _ POST);'并从那里取出它。 – 2013-04-29 13:34:32

+0

Okey,我对JSON和PHP相当陌生,所以我不太确定它是如何完成的。 – Kim 2013-04-29 13:37:10

回答

1

保持传输数据尽可能小以提高性能;我建议你做喜欢:

JS:

//passin data via ajax 
... 
url: "savequiz.php", 
data:{ 
    title : $(input[name="title"]).val(), 
    name : $(input[name="name"]).val(), 
    //and so on ... 
} 

savequiz.php:

$title = $_POST['title']; 
$name = $_POST['name']; 
//and so on ... 

//and HERE is the proper place to create XML file using above $_POST data 
//and save it to a folder. 

,并尝试做更多的研究,以了解如何create XML fileWorking with files使用PHP。

+0

欢迎您! :) – egig 2013-04-29 14:16:22