我有以下功能,它是较大单页应用程序的一部分。
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将数据添加到此字段中。但是,我认为必须有一种更优雅的方式。
任何人都可以为此建议最佳实践(或工作代码!:),并指出在这种情况下哪种技术/技术最合适的正确方向。谢谢
答案 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的意思......