邮件发送后为什么弹出javascript?

时间:2013-01-03 15:30:02

标签: yii

我的控制器中有这种情况,但我想知道为什么即使邮件发送成功,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并跳过警告弹出框,为什么?

2 个答案:

答案 0 :(得分:2)

您应该使用setFlash设置要显示的消息并在视图中显示此消息,您应该使用hasFlash和echo getFlash进行检查以编写消息。

答案 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消息是一个不错的选择,因此您可以在重定向页面上获取消息(如果在重定向之前显示警报并不重要)