php在同一页面中发送邮件并显示成功消息

php在同一页面中发送邮件并显示成功消息,php,jquery,html,Php,Jquery,Html,我有一个html小表单,如下所示: <form id="contact" action="contact.php" method="post"> <table class="contact" width="400" border="0" cellspacing="2" cellpadding="0"> <tr> <td >Your name:</td> <td ><input

我有一个html小表单,如下所示:

 <form id="contact" action="contact.php" method="post"> 
  <table class="contact" width="400" border="0" cellspacing="2" cellpadding="0"> 
    <tr>
      <td >Your name:</td> 
      <td ><input name="name" type="text" id="name" size="32"></td> 
    </tr>
    <tr> 
      <td>Email address:</td> 
      <td><input name="email" type="text" id="email" size="32"></td> 
    </tr>
    <tr> 
      <td>Comment:</td> 
      <td>
        <textarea name="comment" cols="45" rows="6" id="comment" ></textarea>
      </td> 
    </tr>
    <tr>
      <td colspan="2" style="text-align:center;">
        <input type="submit"  value="Submit" style="padding: 3px 22px;" />
      </td>
    </tr>
  </table> 
</form>
    if (isset($_POST['submit'])) 
    { 
      $name = $_POST['name'];
      $email = $_POST['email'];
      $ToEmail = 'test@test.com';
      $EmailSubject = 'Site contact form '; 
      $mailheader = "From: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
      $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
      $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
      $MESSAGE_BODY .= "Subject:".$_POST['subject']."<br />";  
      $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
      mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
     }
  ?>

你的名字:
电邮地址:
评论:
在contact.php文件中,我有如下代码:

 <form id="contact" action="contact.php" method="post"> 
  <table class="contact" width="400" border="0" cellspacing="2" cellpadding="0"> 
    <tr>
      <td >Your name:</td> 
      <td ><input name="name" type="text" id="name" size="32"></td> 
    </tr>
    <tr> 
      <td>Email address:</td> 
      <td><input name="email" type="text" id="email" size="32"></td> 
    </tr>
    <tr> 
      <td>Comment:</td> 
      <td>
        <textarea name="comment" cols="45" rows="6" id="comment" ></textarea>
      </td> 
    </tr>
    <tr>
      <td colspan="2" style="text-align:center;">
        <input type="submit"  value="Submit" style="padding: 3px 22px;" />
      </td>
    </tr>
  </table> 
</form>
    if (isset($_POST['submit'])) 
    { 
      $name = $_POST['name'];
      $email = $_POST['email'];
      $ToEmail = 'test@test.com';
      $EmailSubject = 'Site contact form '; 
      $mailheader = "From: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
      $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
      $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
      $MESSAGE_BODY .= "Subject:".$_POST['subject']."<br />";  
      $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
      mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
     }
  ?>
if(isset($\u POST['submit']))
{ 
$name=$_POST['name'];
$email=$_POST['email'];
$ToEmail=test@test.com';
$EmailSubject='站点联系表';
$mailheader=“From:”..$\u POST[“email”]。“\r\n”;
$mailheader.=“回复:”.$\u POST[“email”]。“\r\n”;
$mailheader.=“内容类型:text/html;charset=iso-8859-1\r\n”;
$MESSAGE_BODY=“Name:”.$\u POST[“Name”]。“
”; $MESSAGE\u BODY.=“电子邮件:”.$\u POST[“电子邮件”]。“
”; $MESSAGE_BODY.=“主题:”..$\u POST['Subject']。“
”; $MESSAGE_BODY.=“Comment:.nl2br($_POST[“Comment”])。”
; 邮件($ToEmail、$EmailSubject、$MESSAGE_BODY、$mailheader)或死亡(“失败”); } ?>
现在这个很好用。但当用户单击submit按钮时,它只是重定向到contact.php文件。我想,当用户将点击按钮,它将显示在同一个html文件中的lightbox格式的成功消息,消息也将被发送。有人能告诉我怎么做吗?任何帮助和建议都是非常值得的。谢谢

更新

我有两个不同的文件。表单在“contact.html”中,表单操作是“contact.php”,我想在“contact.html”页面中显示“success”和“failure”消息,而不去“contact.php”。

试试这个

<html>
<head>
</head>
<body>
 <form id="contact" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 
  <table class="contact" width="400" border="0" cellspacing="2" cellpadding="0"> 
    <tr>
      <td >Your name:</td> 
      <td ><input name="name" type="text" id="name" size="32"></td> 
    </tr>
    <tr> 
      <td>Email address:</td> 
      <td><input name="email" type="text" id="email" size="32"></td> 
    </tr>
    <tr> 
      <td>Comment:</td> 
      <td>
        <textarea name="comment" cols="45" rows="6" id="comment" ></textarea>
      </td> 
    </tr>
    <tr>
      <td colspan="2" style="text-align:center;">
        <input type="submit"  value="Submit" style="padding: 3px 22px;" />
      </td>
    </tr>
  </table> 
</form>
<?php
   if(isset($_POST))
   {
       $name = $_POST['name'];
      $email = $_POST['email'];
      $ToEmail = 'test@test.com';
      $EmailSubject = 'Site contact form '; 
      $mailheader = "From: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
      $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
      $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
      $MESSAGE_BODY .= "Subject:".$_POST['subject']."<br />";  
      $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
      if(mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader))
       {
                echo "success ";
       }
     else
     {
       echo "Failure";
     }
   }


 ?>
</body>
</html>

在您的
联系人.php上尝试类似的操作

<?php
if (isset($_POST['submit'])) { 
      $name = $_POST['name'];
      $email = $_POST['email'];
      $ToEmail = 'test@test.com';
      $EmailSubject = 'Site contact form '; 
      $mailheader = "From: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
      $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
      $MESSAGE_BODY = "Name: ".$_POST["name"]."<br>"; 
      $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>"; 
      $MESSAGE_BODY .= "Subject:".$_POST['subject']."<br />";  
      $MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>"; 
      if(mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader))
      {
      echo "<script>alert('Mail was sent !');</script>";
      echo "<script>document.location.href='contact.php'</script>";
      }
      else
      {
      echo "<script>alert('Mail was not sent. Please try again later');</script>";
      }
     }

使用Ajax@MohammadAdil,把你的评论作为一个答案,这样它就能被接受在与表单页面相同的页面上设置php操作。将表单页面转到php并将发送邮件php代码放在那里,在发送电子邮件时在页面上回显成功消息。