0

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

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/ 组合发送电子邮件,这将产生格式的消息

“您的数据收集结果是

任务1时间1

任务2时间2

任务N 任务N

角色学分等"

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

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

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

4

2 回答 2

0

@happilyUnStuck,更好的方法可能是执行以下操作:

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

在你的帖子中:

a.) 将原来的 $.post 恢复原状 b.) 将表单中的数据序列化为 json ... 将 .serialize() 替换为 .serializeArray() c.) 在对 $ 的调用中丢失函数。 post ...除非您想报告成功或失败,否则您不需要它

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

于 2012-12-06T03:09:33.383 回答
0

你会这样说:

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

在您的 php 脚本中,您将拥有echo $_POST['data'].

于 2012-12-06T01:37:30.107 回答