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,
       ...

这将使用属性“名称”格式化一个正确的 json 对象,然后可以从 $_POST 数组中检索该属性。此外:“name”作为变量的名称会导致某些浏览器出现问题,因为“name”是保留字。

于 2013-06-18T04:24:11.943 回答