表格问题

时间:2017-10-29 02:28:15

标签: javascript php ajax

我正在尝试使用js和php做一个表单,所以,当我点击按钮时,它永远停留在屏幕“发送电子邮件......”并且永远不会发送,我在控制台上检查了它说错误在我的php文件中(找不到404错误)...如果有人可以帮助我,请保持低于我使用的代码:

HTML:

<div class="contact-form">
     <h3>Contate-nos</h3>
          <form id="main-contact-form" name="contact-form" method="post"  action="email.php">
               <div class="form-group">
                    <input type="text" name="name" class="form-control" id="name" placeholder="Nome">
               </div>
               <div class="form-group">
                   <input type="email" name="email" class="form-control" id="email" placeholder="Email">
               </div>
               <div class="form-group">
                   <input type="text" name="subject" class="form-control" id="subject" placeholder="Assunto">
               </div>
               <div class="form-group">
                   <textarea name="message" class="form-control" rows="8" id="message" placeholder="Message"></textarea>
               </div>
               <button type="submit" name="submit" class="btn btn-primary">Send Message</button>
         </form>
</div>

JS:

<script>
       var form = $('#main-contact-form');
       form.submit(function(event){
            event.preventDefault();
        var form_status = $('<div class="form_status"></div>');
           var data = {
               name: $('#name').val(),
               email: $('#email').val(),
               subject: $('#subject').val(),
               message: $('#message').val()
           };
           $.ajax({
               url: $(this).attr('action'),
               type: "POST",
               dataType: "json",
               data: {'data': data},
               beforeSend: function(){
                   form.prepend( form_status.html('<p><i class="fa fa-spinner fa-spin"></i> Sending email...</p>').fadeIn() );
               },
            success: function (data) {
                if(data == 1){
                    form_status.html('<p class="text-success">Sucessful!</p>').delay(3000).fadeOut();
                }
                else{
                    form_status.html('<p class="text-error">Sorry, try again later!</p>').delay(3000).fadeOut();
                }
            },
            error: function (xhr, status, error) {
                console.log(error);
            }
         });
    });
   </script>

PHP:

<?php
$data = $_POST['data'];
$name       = $data['name'];
$from       = $data['email'];
$subject    = $data['subject'];
$message    = $data['message'];
$to         = 'user@email.com';
$headers = "MIME-Version: 1.0";
$headers .= "Content-type: text/plain; charset=iso-8859-1";
$headers .= "From: {$name} <{$from}>";
$headers .= "Reply-To: <{$from}>";
$headers .= "Subject: {$subject}";
$headers .= "X-Mailer: PHP/".phpversion();
if(mail($to, $subject, $message, $headers)){
    echo 1;
}
else{
    echo 0;
}

1 个答案:

答案 0 :(得分:0)

你的ajax网址错了,你应该定义一些其他或自己的网页,如

$.ajax({
    url: 'frmSelf.php',
    data: $("#frmSelf").serialize(),
    dataType: 'json',
    type : 'post',
    success : function(returnData) {
        console.log(returnData);
    }
});