2011-12-03 109 views
1

我期待通过电子邮件发送jQuery测验“jQuizzy”的结果。我需要帮助发送jQuizzy结果通过电子邮件

这是发送POST到文件名为send.php

  if (config.sendResultsURL !== null) 
     { 
      console.log("OH HAI"); 
      var collate =[]; 
      for (r=0;r<userAnswers.length;r++) 
      { 
       collate.push('{questionNumber:"'+parseInt(r+1)+'", UserAnswer:"'+userAnswers[r]+'"}'); 
      } 
      $.ajax({ 
        type: 'POST', 
        url: "send.php", 
        data: '[' + collate.join(",") + ']', 
        complete: function() {console.log("OH HAI");} 
       }); 
     } 

的代码,这里是一个简单的PHP代码发送电子邮件。

<?php 
$to = "[email protected]"; 
$subject = "jQuizzy!"; 

$jsonStr = $_POST["ajax"]; 
$json = json_decode($jsonStr); 

$body = "$json"; 

mail($to, $subject, $body); 
?> 

编辑:对不起的问题是,我的结果张贴到send.php页面,因为电子邮件正在经历,但电子邮件是平原/空。

编辑2:我甚至没有考虑检查php的错误日志,我发现我的服务器没有任何设置,但设置后它似乎没有在PHP端的错误东西的。

+2

确切的问题和你得到的错误是什么? – Treffynnon

+1

我完全打算投票,因为我认为你打电话给jquery“jquizzy”,那真是太棒了。可悲的是,这真的是某种问答框架的名称。 – rdlowrey

+0

当我完成测验时,应该将结果发送到send.php,然后从那里尝试通过电子邮件发送结果。 我知道结果正在发布,因为电子邮件正在发送,但它是一个空白的电子邮件。 –

回答

0

data参数应该是有效的url编码数据或对象散列。你传递的是一个字符串,看起来可能是JSON。这没有任何意义,但很难提出建议,因为你没有真正说出你的问题。

0

尝试将数据作为对象发送。

data: { 
    ajax: '[' + collate.join(",") + ']' 
}, 
+0

试过这个,但我仍然收到一封空白的电子邮件。 –

+0

在PHP文件中,尝试'$ body = print_r($ _ POST [“ajax”],true)'告诉我们你得到了什么。 –

+0

这是电子邮件中发送的内容: [{questionNumber:\“1 \”,UserAnswer:\“2 \”},{questionNumber:\“2 \”,UserAnswer:\“2 \”},{ questionNumber:\“3 \”,UserAnswer:\“1 \”},{questionNumber:\“4 \”,UserAnswer:\“1 \”},{questionNumber:\“5 \”,UserAnswer:\“2 \ “}] –

相关问题