Мне нужна помощь в отправке результатов jQuizzy по электронной почте - PullRequest
1 голос
/ 03 декабря 2011

Я хочу отправить результаты теста jQuery "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 = "example@example.com";
$subject = "jQuizzy!";

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

$body = "$json";

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

РЕДАКТИРОВАТЬ: Извините, проблема в том, что я отправляю результаты на страницу send.php, потому что электронное письмо проходит, ноэлектронная почта обычная / пустая.

РЕДАКТИРОВАТЬ 2: Я даже не думал о проверке журналов php-ошибок, к которым я обнаружил, что мой сервер не был настроен, но после их настройки кажетсяна стороне php ошибок нет.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2011

Попробуйте отправить данные как объект.

data: {
    ajax: '[' + collate.join(",") + ']'
},
0 голосов
/ 03 декабря 2011

Параметр data должен быть либо действительными URL-закодированными данными, либо хэшем объекта. То, что вы передаете, это строка, которая выглядит так, как будто это JSON. Это не имеет никакого смысла, но трудно что-то предложить, поскольку вы действительно не сказали, в чем ваша проблема.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...