简体   繁体   English

Ajax从其他php文件联系表发送数据

[英]Ajax sending data from other php file contact form

I am new to AJAX, i came from a code in internet about sending Ajax to php file. 我是AJAX的新手,我来自互联网上有关将Ajax发送到php文件的代码。 The problem is i dont know if the data is submitted or what happen. 问题是我不知道数据是否已提交或发生了什么。 The alert box doesn't pop up if it was submited 如果警报框已提交,则不会弹出

success: function () {
              alert('form was submitted');
            }

Here is the full form from html : 这是html的完整表格:

    <form class="form-horizontal">
    <div class="form-group">
    <label for="contact-name" class="col-sm-2 control-label">Name</label>
     <div class="col-sm-3">
    <input type="text" class="form-control" id="name" name="name" placeholder="FULL Name" required>
     </div>
     </div>
     <div class="form-group">
  <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
   <div class="col-sm-4">
  <input type="email" class="form-control" id="email" name="email" placeholder="Email" required>
  </div>
  </div>
  <div class="form-group">
  <label for="contact-msg" class="col-sm-2 control-label">Message</label>
  <div class="col-sm-4">
  <textarea name="message" class="form-control" required></textarea>
    </div>
   </div>
   <div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
  <button class="btn btn-primary" type="submit" value="submit" >Send Message</button>
   </div>
   </div>
  </form>

here is the script : 这是脚本:

<script>
      $(function () {

        $('form').on('submit', function (e) {

          e.preventDefault();

          $.ajax({
            type: 'post',
            url: 'mail.php',
            data: $('form').serialize(),
            success: function () {
              alert('form was submitted');
            }
          });

        });

      });
</script>

and because i dont know where the problem is, please check also my php code. 并且因为我不知道问题出在哪里,请同时检查我的PHP代码。 thank you stackoverflow,good programmers. 谢谢stackoverflow,好的程序员。 php code : PHP代码:

<?php

    $name = $_POST['name']; 
    $email_from = $_POST['email']; 
    $comments = $_POST['message']; 

    $email_to = "jcjohn@gmail.com";
    $email_subject = "Message from John Web";
    $email_message = "Form details below.\n\n";

        function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
        }

        $email_message .= "Name: ".clean_string($name)."\n";
        $email_message .= "Email: ".clean_string($email_from)."\n";
        $email_message .= "Comments: ".clean_string($comments)."\n";

        // create email headers
      $headers = 'From: '.$email_from."\r\n".
      'Reply-To: '.$email_from."\r\n" .
      'X-Mailer: PHP/' . phpversion();
       mail($email_to, $email_subject, $email_message, $headers);


        echo "<script type='text/javascript'>alert('$message');</script>";        
?>

am i doing right ? 我做对了吗? or maybe i was doing something that nothing goes. 也许我正在做些什么都没做的事情。

Kindly Use ajaxForm Plugin and include jquery library.I think this will work fine for you. 请使用ajaxForm插件并包含jquery库。我认为这对您来说很好。

<html> 
    <head> 
        <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.js"></script> 
        <script src="http://malsup.github.com/jquery.form.js"></script> 

        <script> 
            // wait for the DOM to be loaded 
            $(document).ready(function() { 
                // bind 'myForm' and provide a simple callback function 
                $('#myForm').ajaxForm(function(data) { 
                    alert(data); 
                }); 
            }); 
        </script> 
    </head>
    <body>
    <form id="myForm" action="comment.php" method="post"> 
        <div class="form-group">
    <label for="contact-name" class="col-sm-2 control-label">Name</label>
     <div class="col-sm-3">
    <input type="text" class="form-control" id="name" name="name" placeholder="FULL Name" required>
     </div>
     </div>
     <div class="form-group">
  <label for="inputEmail3" class="col-sm-2 control-label">Email</label>
   <div class="col-sm-4">
  <input type="email" class="form-control" id="email" name="email" placeholder="Email" required>
  </div>
  </div>
  <div class="form-group">
  <label for="contact-msg" class="col-sm-2 control-label">Message</label>
  <div class="col-sm-4">
  <textarea name="message" class="form-control" required></textarea>
    </div>
   </div>
   <div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
  <button class="btn btn-primary" type="submit" value="submit" >Send Message</button>
   </div>
   </div>
    </form>
    </body>
    </html> 

and your PHP file code must be like this 并且您的PHP文件代码必须是这样的

<?php

    $name = $_POST['name']; 
    $email_from = $_POST['email']; 
    $comments = $_POST['message']; 

    $email_to = "jcjohn@gmail.com";
    $email_subject = "Message from John Web";
    $email_message = "Form details below.\n\n";

        function clean_string($string) {
          $bad = array("content-type","bcc:","to:","cc:","href");
          return str_replace($bad,"",$string);
        }

        $email_message .= "Name: ".clean_string($name)."\n";
        $email_message .= "Email: ".clean_string($email_from)."\n";
        $email_message .= "Comments: ".clean_string($comments)."\n";

        // create email headers
      $headers = 'From: '.$email_from."\r\n".
      'Reply-To: '.$email_from."\r\n" .
      'X-Mailer: PHP/' . phpversion();
       mail($email_to, $email_subject, $email_message, $headers);


        echo "Form Submitted";        
?>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM