我的控制器中有这种情况,但我想知道为什么即使邮件发送成功,javascript警报也不会启动?
if(mail($to,$sub,$body,$headers)){
echo '<script>alert("Thank you for your enquiry.\nWe will get back to you soon\n");</script>';
$this->redirect(Yii::app()->homeUrl);
}
它只是重定向到homeUrl并跳过警告弹出框,为什么?
答案 0 :(得分:2)
答案 1 :(得分:1)
如果你想在重定向之前显示警告,你可以在javascript被发送到浏览器之前将重定向放在javascript中作为PHP重定向来实现这一点
if(mail($to,$sub,$body,$headers)){
echo '<script>
alert("Thank you for your enquiry.\nWe will get back to you soon\n");
location.replace('.Yii::app()->homeUrl.');
</script>';
}
Adler已经提到的Flash消息是一个不错的选择,因此您可以在重定向页面上获取消息(如果在重定向之前显示警报并不重要)