Ajax没有发布表单数据

时间:2014-03-03 18:36:51

标签: javascript php jquery ajax

我最近问了一个关于在没有页面重新加载的情况下执行Send Mail脚本的问题,并解决了我的AJAX问题,这一切都已解决。我现在遇到以下问题:

当我的表单发布到我的AJAX时,脚本会被执行,但是后期数据似乎没有通过PHP脚本。

我的问题的链接是:Contact Form same page success

这是我的PHP:

<?php


$name =  ($_POST['name']);
$email =  ($_POST['email']);
$fsubject =  ($_POST['subject']);
$message = ("Name: ". $name . "\nEmail Address: " . $email . "\n\nMessage: " . $_POST['message']);


// Set Mail
$to = "emailaddress@fakeone.com";
$header = 'From: contactus@fakeone.com' . "\r\n" .
    'Reply-To: website@fakeone.com';
$subject = "{$fsubject}";
$body = "{$message}";


// Send Mail
if (mail($to, $subject, $body, $header)) 
{
    echo("<p>Message successfully sent!</p>");
} 
else 
{
    echo("<p>Message delivery failed...</p>");
}

?>

我的HTML

<div id="success" style="color:red;"></div>

<form action="" id="contactform" method="post">
<div class="row">
<div class="form-group">
<div class="col-md-6">
<label>Your name *</label>
<input type="text" value="" data-msg-required="Please enter your name." maxlength="100"     class="form-control" name="name" id="name">
</div>
<div class="col-md-6">
<label>Your email address *</label>
<input type="email" value="" data-msg-required="Please enter your email address." data-msg-email="Please enter a valid email address." maxlength="100" class="form-control" name="email" id="email">
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label>Subject</label>
<input type="text" value="" data-msg-required="Please enter the subject." maxlength="100" class="form-control" name="subject" id="subject">
</div>
</div>
</div>
<div class="row">
<div class="form-group">
<div class="col-md-12">
<label>Message *</label>
<textarea maxlength="5000" data-msg-required="Please enter your message." rows="10"     class="form-control" name="message" id="message"></textarea>
</div>
</div>
</div>
<div class="row">
<div class="col-md-12">
<input type="submit" id="submit" value="Send Message" class="btn btn-info btn-lg" data-loading-text="Loading...">
</div>
</form>

我的AJAX

<script>
        $(document).ready(function () {

            $('#submit').click(function () {

                $.post("sendmail.php", $("#contactform").serialize(), function (response) {
                    $('#success').html(response); 

                });
                return false;
            });

        });
    </script>

当我填写表格时,没有任何回复,它会发送一封空电子邮件。

任何想法都是为什么帖子没有在这方面工作将非常感谢。如果我通过发布其他问题违反任何规则,请告诉我们!

此致 丹

2 个答案:

答案 0 :(得分:0)

我认为问题出在您的PHP代码中。您有一个名为 $ headers 的变量,但在您的邮件功能中,您使用的是 $ header 。一个错字。

答案 1 :(得分:0)

更改以下行 -

$subject = "{$fsubject}";
$body = "{$message}";

到此 -

$subject = $fsubject;
$body = $message;