DIV中的PHP联系人表单状态更新

DIV中的PHP联系人表单状态更新,php,html,forms,contact,Php,Html,Forms,Contact,听起来是个奇怪的问题,但这是我的问题。php的结尾有一段代码,上面说成功或失败会使一个白色屏幕显示出来,我真的希望它在同一页面的submit按钮下弹出,而不是重定向整个页面 我想我可以把它指向一个空的 mail.php: <?php $name = $_POST['name']; $email = $_POST['email']; $phone = $_POST['phone']; $message = $_POST['message']; $for

听起来是个奇怪的问题,但这是我的问题。php的结尾有一段代码,上面说成功或失败会使一个白色屏幕显示出来,我真的希望它在同一页面的submit按钮下弹出,而不是重定向整个页面

我想我可以把它指向一个空的

mail.php:

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $message = $_POST['message'];
    $formcontent=" From: $name \n Phone: $phone \n Message: $message";
    $recipient = "art@jamisonsigns.com";
    $subject = "Web Contact Form";
    $mailheader = "From: $email \r\n";
    mail($recipient, $subject, $formcontent, $mailheader) or die("Error!");
    echo "Thank You!" . " -" . "<a href='index.html' style='text-decoration:none;color:#ff0099;'> Return Home</a>";
?>

在我的网站上使用一个简单的HTML表单,如下所示:

<form class="contact-form" form action="mail.php" method="POST">
      <fieldset>
           <input type="text" class="name" id="name" placeholder="Name...">
      </fieldset> 
      <fieldset>
           <input type="email" class="email" id="email" placeholder="Email...">
      </fieldset> 
      <fieldset>
           <input type="text" class="phone" id="phone" placeholder="Phone...">
      </fieldset>
      <fieldset>
           <textarea name="message" id="message" cols="30" rows="4" placeholder="Message.."></textarea>
      </fieldset>
      <fieldset>
           <input type="submit" class="button" id="button" value="Send Message">
      </fieldset>
 </form>

您需要使用Ajax提交表单。然后在成功时将消息插入html中

$('#button').click(function(event) {
event.preventDefault();

var formdata = $('#formID').serializeArray();
var url = '/urltopost.php';

$.ajax( 
{
    url : url,
    type: "POST",
    data: formdata,
    success:function(data, textStatus, jqXHR) 
    {
        //data: return data from server
        console.log("STATUS:" + textStatus + " | jqXHR:" + jqXHR + " | data:" + data);
    },
    error: function(jqXHR, textStatus, errorThrown) 
    {
        //if fails      
        alert("ERROR:" + " -> " +errorThrown);
    }
});
}))


您需要一个ajax请求,或者完全用表单重新构建/重新发布页面,包括新页面底部的邮件状态位。如果不想重新加载页面,您必须使用jQuery(ajax)进行回发。有很多关于如何做到这一点的信息,只有谷歌。