将数据从jQuery发送到PHP进行邮寄

时间:2011-04-11 14:30:58

标签: php jquery sendmail phpmailer jquery-post

我有一个javascript文件,我一直在使用它作为我正在处理的网站的模板,在该脚本中有一个简单的表单验证,如果没有错误发生 - 将数据发送到一个名为的PHP页面contact.php。

但我不确定如何“抓取”PHP网站中JavaScript发送的数据? contact.php工作 - 也就是说,如果我,在我的表单中,直接将它指向contact.php,它会毫无问题地发送邮件。在该文件中,我发送如下变量:$ name = $ _POST ['formName'];依此类推,最后将其发送给邮件功能。

我在JavaScript文件中发送数据并在同一页面上显示“成功”消息的代码是:

$.post("contact.php",
{ formFrom: FromValue, formName: NameValue, formMessage: messageValue },
function(data){
$("#loadingImage").fadeOut("fast", function() {                
$("#loadingImage").before('<p>The message has been sucessfully send. Thank you!</p>');      
});
}
);

NameValue, messageValue, FromValue在表单验证中设置为var messageValue = $("#formMessage").val();

非常感谢任何帮助。


- 梅斯蒂卡

1 个答案:

答案 0 :(得分:2)

只需使用jQuery AJAX调用(此语法来自 jQuery 1.5.X ):

$.ajax({
    type: 'POST'
    url: urlString,
    data: {formFrom: FromValue, formName: NameValue, formMessage: messageValue}
}).success(function(data, status, xhr) {
    var obj = eval('(' + data + ')');
    //response as object
});

要将JSON发送回JavaScript,请在​​PHP中使用此函数:

http://php.net/manual/en/function.json-encode.php

另一件事:根据经验,使用像“FromValue”这样的变量名称是不好的做法。初始大小写应该用于类名,而不是变量(JavaScript开发人员从Java借用了这种做法)。