0

jQuery を使用してページ上の要素を収集し、電子メールで送信します。どこが間違っているのかわかりません。正しくログに記録されているようです...そして電子メールphpはjQueryとは別に正常に動作します。

 $('.questionFive').click(function(){
    var name = preSubmit();
    console.log(name);
    var varData = 'name=' + name;
    $.ajax({
        type: "POST",
        url:'php.php',
        data: varData,
        success: function(){
            alert("It was a success");
            //window.location.replace("thankyou.html");
        }
    });
 });

function preSubmit(){
    var optionTexts = [];
    $("section").each(function(){
        var h2 = $(this).find("h2").text();
        optionTexts.push(h2);
        optionTexts.push("\n");
        $("ol li", this).each(function() { optionTexts.push($(this).text()) })
    });
    var splitText = optionTexts.join("\n");
    console.log(splitText)
    var fromWho = "from: Company Name"
    splitText += fromWho;
    return splitText;
}

php ファイル:

<?php
        $subject = "survey";
        $email = "lukasz@visualhero.com";
        $message = $_POST["name"];

        mail($email, $subject, $message);
?>
4

1 に答える 1

0

実際にあなたの問題は何ですか?私はこれだけを見ることができます:

var varData = 'name=' + name;
...
$.ajax({
        type: "POST",
        url:'php.php',
        data: varData,
        success: function(){

$message = $_POST["name"];

私には奇妙に見えます。次のことを試してください。

var varData = { 'name': encodeURIComponent(name) };
....
       data: varData,
       ...

これにより、プロパティ「name」を使用して適切な json オブジェクトがフォーマットされ、$_POST 配列から取得できます。さらに、変数の名前としての「name」は、「name」が予約語であるため、特定のブラウザで問題を引き起こします。

于 2013-06-18T04:24:11.943 に答える