我可以使用POST将AJAX与PHPMailer连接吗?

时间:2018-01-19 10:31:56

标签: javascript php jquery ajax

我正在尝试创建一个contactform,我有js和php但它们之间没有连接。从AJAX接收字符串作为数据时,我是否正确使用$ _POST ['Name']?有没有办法让我找出那个字符串是什么样的?

编辑:好的,我已经设法发现我经常得到NULL或空数组。我还发现它可能是来自jQuery和stringify的标题与PHP不匹配。但这对我来说太先进了。但我认为这里有一个更好的问题:如何从PHP中读取我发送的数据?

EDIT2:var_dump($ _ POST);给出“array(0){}”。如何获取所有已发送的原始数据?

我的javascript看起来像这样(在线发现它是为了学习)。

/*-------------
//lots of code to check validity of form
//-------------*/


    });
    if( ferror ) return false; 
    else var str = $(this).serialize();     
        $.ajax({
            type: "POST",
            url: "contactform.php",
            data: str,
            success: function(msg){
               // alert(msg);
                if(msg == 'OK') {
                    $("#sendmessage").addClass("show");         
                    $("#errormessage").removeClass("show"); 
                }
                else {
                    $("#sendmessage").removeClass("show");
                    $("#errormessage").addClass("show");
                    $('#errormessage').html(msg);
                }
            }
        });
    return false;
});
});

我的PHP看起来像这样。

<?php 
parse_str($_POST['str'], $var1);
var_dump ($var1);
$data = json_decode($_POST['data'], true);
var_dump($data);
?>

2 个答案:

答案 0 :(得分:0)

需要使用ajax请求发送数据对象,以便您可以在php代码中访问它。通常看起来像 -

data: {name: name, email: email}

在您的代码中,您在数据对象中使用str变量。因此,请确保str表示数据对象。我想说这可能会导致你的问题。

答案 1 :(得分:0)

您的PHP代码需要更新。

试试这个:

input[type="text"] {
    width: 15%;
}

您对jQuery和标题的看法已经结束了,所以我会让您完成阅读,而不是详细介绍。