【发布时间】:2013-09-23 19:12:42
【问题描述】:
我正在尝试使 php 邮件表单在成功提交后显示成功消息。 我是 php 新手,我不知道如何使这项工作。 就像它现在一样,提交后,网站只是在页面顶部重新加载。我希望它在联系人 div 处刷新并显示成功消息。
联系div html:
<div class="contact-wrapper" >
<div class="contact">
<div class="contact-left" id="contact">
<?php
if (isset($_REQUEST['email'])) {
echo "Thank you for your message.";
}
$mail_form = include('php/mail_form.php'); ?>
</div> <!-- end div contact -->
PHP 联系方式:
<?php
function spamcheck($field)
{
//filter_var() sanitizes the e-mail
//address using FILTER_SANITIZE_EMAIL
$field=filter_var($field, FILTER_SANITIZE_EMAIL);
//filter_var() validates the e-mail
//address using FILTER_VALIDATE_EMAIL
if(filter_var($field, FILTER_VALIDATE_EMAIL))
{
return TRUE;
}
else
{
return FALSE;
}
}
if (isset($_REQUEST['email']))
{//if "email" is filled out, proceed
//check if the email address is invalid
$mailcheck = spamcheck($_REQUEST['email']);
if ($mailcheck==FALSE)
{
echo "Invalid input";
}
else
{//send email
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail("idc615@gmail.com", "Subject: $subject",
$message, "From: $email" );
header("location: index.php");
}
}
?>
【问题讨论】:
-
如果你想刷新而不重新加载整个页面,你应该使用 AJAX
-
如果 div 位于 html(静态)文件中,则不能这样做(没有 AJAX)。如果它是一个 php 文件 - 您可以将参数传递给将用于显示消息的页面。
-
请也包含您的 HTML 标记。
-
I'd like it to refresh at the contact div-- 我不明白为什么这里的每个人都建议使用 AJAX。 -
在
header(location)之后,您不再拥有Request[email]。尝试header("location: index.php?success=1");并使用if (isset($_GET['success'])) { echo "Thank you for your message."; }