我使用Laravel4构建一个非常简单的应用程序,到目前为止我已设法设置PHPMailer以使用联系表单,用户填写他们的详细信息并向我发送电子邮件,正常的东西,一切正常。 用户成功发送电子邮件后,将通过
重定向到主页if($m->send()) {
header('Location: /path/to/home/');
die();
}
现在我需要的是如果用户在成功发送电子邮件后被重定向,则会显示在主页顶部的成功消息。
我的主页上有一个.success
课程的div,绝对位于视野之外,Y值为负。
我试着在$m->send()
之后将其拉下来,如此:
if($m->send()) {
header('Location: /path/to/home/');
echo "<script type='text/javascript'>
$('.success').animate({
top: 0
}, 2000);
</script>";
die();
}
但它没有用。事实上,在header()之后我没有回应任何影响。
我该怎么办?
谢谢你们!
答案 0 :(得分:0)
这是简单的HTTP - 当你设置Location
标题时,它告诉浏览器离开你所在的页面并转到其他地方 - 之后发生的任何事情(就像那个小JS片段)永远不会到达浏览器。您需要将该代码段放在要重定向到的页面上,而不是放在此页面上。
答案 1 :(得分:0)
我意识到在实际链接jquery lib之前你不能在文档上使用jquery,我解决了这个问题。
所以,在我的phpmailer配置文件中,我在使用$_SESSION['success'] = true
重定向之前设置header('Location: /path/to/home/');
,然后在主页上,我想要显示成功消息的页面,我添加了这段代码(在链接jQuery库之后):
<?php
if(isset($_SESSION['success']) && $_SESSION['success'] == true ) {
?>
<script type='text/javascript'> $('.success').animate({top : 0}, 'normal').delay(3000).animate({top : -57}, 'normal');</script>
<?php
} else {
$_SESSION['success'] = false;
}
?>
我不知道这是不是一个好习惯,但确实有效。
我也必须在我的主页上session_start();
(显然)。
希望这可以帮助处于相同情况的任何人!