通过Ajax发送电子邮件

时间:2014-03-11 20:25:22

标签: javascript php jquery ajax email

我正在使用表单的validate插件。 我只想要一个没有刷新的联系表。我想这是可能的。

这是我的Javascript:

$().ready(function() {
// validate the comment form when it is submitted.

 $("#actualForm").validate({
focusInvalid: false,
onkeyup: true,
    rules: {
    // simple rule, converted to {required:true}
        name: "required",
        comment: "required",
        email: {
          required: true,
          email: true
        },
    },

submitHandler: function(form) {   
            var name = $('input[name="name"]').val();
            var email = $('input[name="email"]').val();
            var comment = $('input[name="comment"]').val();
            var params = {
                "name": name,
                "email": email,
                "comment": comment,
            };

            console.log(data);debugger;
            $.ajax({
            url: 'email.php',
            data: params,
            type: 'POST',
            dataType: json,
            success: function (data) {

                if (data.status) {
                    //Give success log to user
                } else {
                    //Do something
                }
            }
            });
        } 

这是我的PHP:

<?php
$name = $_POST['name'];
$email = $_POST['email'];
$comment = $_POST['comment'];
$to = 'myemail';
$from = $email;
$subject = 'subject';
$body = "Hello Admin<br><br>
        Name: <strong>$name</strong><br>
        Email: $email<br>
        Bericht: $comment<br>
            ";
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= "From: $from";
$ok = mail($to, $subject, $body, $headers);
if($ok)
    echo '1';
else
    echo '0';
?>

我也有一个invalidHandler,但是那件事情正在发挥作用,所以我觉得把它放在这里是没用的。

但我现在被困了几个小时,我希望有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

您的代码在ajax函数中有一点错误

替换:

dataType: json,

by:

dataType: 'json',

没有'',json被认为是一个变量名,在你的情况下你想传递'json'作为一个值。

答案 1 :(得分:0)

我倾向于使用var_dump进行调试。

什么是var_dump($ _ POST);给你?

您是否在浏览器中获得了500个网络响应?

键入console.log(data);在你的成功功能中。这将为您提供如何解决问题的提示。