将非形式的javascript数组数据发送到电子邮件正文

时间:2012-12-06 01:30:09

标签: php javascript jquery ajax json

我有以下功能,它是较大单页应用程序的一部分。

gatherData function(){
    var superarray = []
    var row = 0


    $('ul li').each(function(){
        var task = $(this).find('.edited').html();   
        var time = $(this).find('.time').html(); 
        var array = []
        var count = 0

        array[count] = task;
        count = count + 1  
        array[count] = time;

        superarray[row] = array  
        row = row + 1                       
      }); // end each

       console.log(superarray); // this is the data i want tabulated in email 
  });

我希望使用

 <form><email><submit class="send"></form>

 $('.send').click(function(){
        gatherData();
        $.post("processform.php", // now I'm stuck

通过最合适的php / ajax / json /组合发送电子邮件,这将产生格式的消息

“您的数据收集结果

task1 time1

task2 time2

taskN taskN

角色分数等“

在我的无知中,我考虑创建一个隐藏的消息字段,并在发布之前通过DOM将数据添加到此字段中。但是,我认为必须有一种更优雅的方式。

任何人都可以为此建议最佳实践(或工作代码!:),并指出在这种情况下哪种技术/技术最合适的正确方向。谢谢

http://jsfiddle.net/BinaryGeometry/kNwMA/

2 个答案:

答案 0 :(得分:0)

你会这样说:

 $('.send').click(function(){
    var data = gatherData();
    $.post("processform.php?data="+ data) .....

在你的PHP脚本中你只有echo $_POST['data']

答案 1 :(得分:0)

@happilyUnStuck,稍微好一点的方法可能是执行以下操作:

在您的点击事件中,提示用户确认他们已准备好提交表单。根据返回值, 继续你的帖子

在你的帖子中:

a。)把原来的$ .post放回原来的样子 b。)将表单中的数据序列化为json ...用.serializeArray()替换.serialize() c。)在你的$ .post调用中失去功能...除非你想报告成功或失败,否则你不需要它

在服务器端,使用json库对发布数据进行反序列化并根据需要使用。这种类型的应用程序/用例正是json的意思......