0

次のような質問があります: jQuizzy の結果を電子メール で送信するのに助けが必要です。上記のリンクですべてを試しました。

これは私のコードです:

$.ajax({
type: 'POST',
dataType: 'text/json',
url: config.sendResultsURL,
data: '[' + collate.join(",") + ']',
complete: function () {console.log("OH HAI");}
});

$name = $_POST['name'];
$to = "email@gmail.com";
$subject = "Quiz Score";
$header = "Content-Type: text/html\r\nReply-To: $to\r\nFrom: $name <$email>";
$jsonStr = $_POST["ajax"];
$json = json_decode($jsonStr);

$body = "$name scored: $json";

mail($to, $subject, $body, $header);

これは、php ファイルに送信されるデータです。

[{questionNumber:"1", UserAnswer:"1"},{questionNumber:"2", UserAnswer:"1"},{questionNumber:"3", UserAnswer:"1"},{questionNumber:"4", UserAnswer:"1"}]:

更新: 回答の指示に従い、更新された send.php ファイルを表示するように要求されました:

<?php
    $name = $_POST['name'];
    $to = "email@gmail.com";
    $subject = "Quiz Score";
    $header = "Content-Type: text/html\r\nReply-To: $to\r\nFrom: $name <$email>";
    $jsonStr = $_POST["ajax"];
    $json = json_decode($jsonStr);

    $body = "$name scored: ".var_dump($json)."";

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

1 に答える 1

1

ここにはいくつかの問題があります。

  1. $json = $_POST["ajax"];する必要があります$jsonStr = $_POST["ajax"];
  2. $jsonは配列です。スコアを計算するには、その要素にアクセスする必要があります。
  3. JSON の形式が正しくありません -json_decodeフィールドがスピーチ マーク ( ") と値で囲まれている必要があります。

私が見る限り、正しい答えが何であるかを渡す方法はないので、事前にそれらを知り、PHP スクリプトに入れて、ユーザーが送信したものと照合する必要がありますが、jQuizzy を使用したことはありません。だから私は推測しています!

于 2013-05-24T14:01:20.573 に答える