在同一页面上提交表单和成功消息?

时间:2015-05-03 21:13:53

标签: javascript php jquery html forms

所以现在我有一个基本的contact.html,如果我的网站上有人与我联系,我会设置一个php脚本给我发电子邮件。当他们点击提交时,会将他们带到contact_sent.php,这是一个空白页面。我想要它,以便当他们点击提交时,它会将它们保持在同一页面上,并显示来自SweetAlert的成功消息,然后清除表单以便他们不会垃圾邮件“发送消息”按钮

<?php
if ($_POST['submit']) {
    $name=$_POST['name'];
    $email=$_POST['email'];
    $subject=$_POST['subject'];
    $message=$_POST['msg'];
    $to_add="***********@gmail.com";
    $from_add="form@***********.net";

    $email_message="<br /><br /><b>Name:</b><br />$name <br />";
    $email_message.="<br /><br /><b>Reply Email:</b><br />$email <br />";
    $email_message.="<br /><br /><b>Regarding:</b><br />$subject <br />";
    $email_message.="<br /><br /><b>Message:</b><br />$message <br />";

    $headers="From: $from_add \r\n";
    $headers.="Reply-To: $from_add \r\n";
    $headers.="Return-Path: $from_add\r\n";
    $headers.="X-Mailer: PHP \r\n";
    $headers.="MIME-Version: 1.0\r\n";
    $headers.="Content-Type: text/html;\r\n";

    mail($to_add,$subject,$email_message,$headers);
}
alert("Sent!");
?>

编辑:最后的警报不起作用。

3 个答案:

答案 0 :(得分:3)

警告是javascript代码。所以你需要你的PHP脚本来生成javascipt。希望它能帮到你

<?php
    if($_POST['submit']) {
        //your other codes here

        mail($to_add,$subject,$email_message,$headers);
        //becareful keep the whole javascript code on mail function's success.
        //I just added how to do It.It will alert too if your mail function return false.
        ?>
        <script type="text/javascript">
            alert("Sent!");
        </script>
        <?php
    }
?>   

答案 1 :(得分:2)

<?
if ($_POST['submit'])
{
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['msg'];
$to_add = "***********@gmail.com";
$from_add = "form@***********.net";

$email_message = "<br /><br /><b>Name:</b><br />$name <br />";
$email_message .= "<br /><br /><b>Reply Email:</b><br />$email <br />";
$email_message .= "<br /><br /><b>Regarding:</b><br />$subject <br />";
$email_message .= "<br /><br /><b>Message:</b><br />$message <br />";

$headers = "From: $from_add \r\n";
$headers .= "Reply-To: $from_add \r\n";
$headers .= "Return-Path: $from_add\r\n";
$headers .= "X-Mailer: PHP \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;\r\n";

mail($to_add,$subject,$email_message,$headers);

//echo js alert
}else{ // form not submitted yet
//display form code

}

?>

答案 2 :(得分:1)

你所描述的基本上就是AJAX。如果您使用的是jquery,可以在按下按钮时使用其$ .ajax函数,并通过其data属性发送数据。根据您当前的PHP代码,它可能如下所示:

 $.ajax({ url: '/route/to/php/function',
         data: {name = nameVal,
         email = emailVal,
         subject = subjectVal,
         message = messageVal},
         type: 'post',
         success: function(output) {
                      //do whatever after the POST is successful
                  }
});

您可以在$ .ajax调用之前或之后将表单清除代码和SweetAlert代码放在提交按钮的同一事件侦听器中。