为什么我收到一封空电子邮件?

时间:2016-04-15 17:01:01

标签: javascript php html forms email

为什么字段值不包含在我的电子邮件中?我收到一封空电子邮件。

HTML

<div class="contact-form wow fadeIn" data-wow-duration="1000ms" data-wow-delay="600ms">
  <div class="row">
    <div class="col-sm-6">
      <form id="main-contact-form" name="contact-form" method="post" action="sendemail.php">
        <div class="row  wow fadeInUp" data-wow-duration="1000ms" data-wow-delay="300ms">
          <div class="col-sm-6">
            <div class="form-group">
              <input type="text" id="name" name="name" class="form-control" placeholder="Name" required="required">
            </div>
          </div>
          <div class="col-sm-6">
            <div class="form-group">
              <input type="email" id="email" name="email" class="form-control" placeholder="Email Address" required="required">
            </div>
          </div>
        </div>
        <div class="form-group">
          <input type="text" id="subject" name="subject" class="form-control" placeholder="Subject" required="required">
        </div>
        <div class="form-group">
          <textarea name="message" id="message" class="form-control" rows="4" placeholder="Enter your message" required="required"></textarea>
        </div>
        <div class="form-group">
          <button type="submit" class="btn-submit">Send Now</button>
        </div>
      </form>
    </div>

的JavaScript

var form = $('#main-contact-form');
form.submit(function(event) {
  event.preventDefault();
  var form_status = $('<div class="form_status"></div>');
  $.ajax({
    url: $(this).attr('action'),
    beforeSend: function() {
      form.prepend(form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Email is sending...</p>').fadeIn());
    }
  }).done(function(data) {
    form_status.html('<p class="text-success">Thank you for contact us. As early as possible  we will contact you</p>').delay(6000).fadeOut();
  });
});

PHP

<?php

$name       = @trim(stripslashes($_POST['name'])); 
$headers    = 'From:'. @trim(stripslashes($_POST['email']));
$subject    = @trim(stripslashes($_POST['subject'])); 
$temp_name  = 'Client name='.$name."\n\n\n";
$temp_text  = 'client query='.@trim(stripslashes($_POST['message']));
$message    = $temp_name.$temp_text; 
$to         = 'svasu1850@gmail.com';

if(@mail($to, $subject, $message, $headers))
{
  $result="Thanks for contacting us";
}else{
  $result="retry after some time";
}

?>

1 个答案:

答案 0 :(得分:1)

您正在使用javascript来阻止默认表单提交。这将停止发布用户输入,除非您捕获它并选择在ajax代码中发送它。

$.ajax({
...
data: $("#main-contact-form").serialize(),
...
})

在此处查看更多内容:jQuery - Getting form values for ajax POST

相关问题