2011-12-03 2 views
1

이메일을 통해 jQuery 퀴즈 "jQuizzy"의 결과를 보내려고합니다. jQuizzy 결과를 이메일로 전송하는 데 도움이 필요합니다.

  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");} 
       }); 
     } 

send.php라는 이름의 파일로 POST를 보내는 코드이며, 여기에 이메일을 보낼 수있는 간단한 PHP 코드입니다.

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

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

$body = "$json"; 

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

편집 : 죄송 문제는 이메일을 통해 것입니다 때문에 결과가 send.php 페이지에 게시되고 있다는 것을,하지만 이메일은 빈/일반입니다.

EDIT 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 \"}, { UserAnswer : \ "1 \", UserAnswer : \ "4 \", UserAnswer : \ "1 \"}, {QuestionNumber : \ "5 \", UserAnswer : \ "2 \ "}] –

관련 문제