我应该在这篇文章的开头说明,我只是一个业余爱好者,对于PHP和JQuery之类的代码并不精通。我要做的是使用我在互联网上找到的PHP脚本从HTML表单发送电子邮件。我有这一切都工作得很好,但我不喜欢的事实是,电子邮件发送后,用户被发送到一个新的页面,消息说它已经发送。而不是打开一个新的页面,我希望用户留在同一页上,得到一个弹出消息,而不是。以下是我使用的PHP脚本代码:
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$name = $_POST['name'] ;
$email = $_POST['email'] ;
$subject = "Mail from website";
$message = $_POST['message'] ;
$to = "johndoe@gmail.com";
$headers = "From:" . $email . "rn" .
"Reply-To:" . $email;
if(mail($to,$subject,$message, $headers)) {
echo "Your email was sucessfully sent!";
} else {
echo "The email message was not sent.";
}
?>
我没有附加我的html,因为我认为它不是真的需要。任何帮助,这将是非常感激!
重定向到像header("location: formfile?msg=success");
这样的查询字符串然后,为了拉消息只是使用$parts = parse_url($url); parse_str($parts['query'], $query); $alert_value = $_GET['msg'];
在文件中,你的形式所在。之后,你可以用if语句执行操作。
示例如下:
表单所在的文件
<?php
$parts = parse_url($url);
parse_str($parts['query'], $query);
$alert_value = $_GET['msg'];
if ($alert_value == "success") {
//do your actions to show lighbox.
}
?>
<!-- Your code for form in html --->
和你发送电子邮件的文件:
<?php
ini_set( 'display_errors', 1 );
error_reporting( E_ALL );
$name = $_POST['name'] ;
$email = $_POST['email'] ;
$subject = "Mail from website";
$message = $_POST['message'] ;
$to = "johndoe@gmail.com";
$headers = "From:" . $email . "rn" .
"Reply-To:" . $email;
if(mail($to,$subject,$message, $headers)) {
header("location: formfile.php?msg=success");
} else {
header("location: formfile.php?msg=error");
}
?>