重定向前加载JavaScript(CodeIgniter)


Load JavaScript before Redirecting (CodeIgniter)

这是我的代码。我已经试过了,flush();窗口位置(_L)。。但它仍然失败了。我该怎么办?我还测试了$result的值是否通过,它是否正常。唯一的问题是JavaScript没有加载。我有其他具有这种编码结构的代码,但运行良好,并在加载前显示JavaScript。

function accsettings()
{
    $this->load->model('admin_model');
    $result = $this->admin_model->accsettings();
    if ($result==0)
    {
        echo '
            <script type="text/javascript">
                alert("Congratulations! Your profile has been updated.");
            </script>
            ';
        $res2 = $this->admin_model->accset_audit();
    }
    else if ($result==1)
    {
        echo '<script type="text/javascript"> alert("Error! Current password is not correct."); </script>';
    }
    else
    {
        echo '<script type="text/javascript"> alert("New password does not match with the confirmation."); </script>';
    }
    redirect('/main/accsettings');
}

我不建议用这种方式显示"JavaScript"警报消息,如果你想显示验证消息,请设置变量控制器并查看。

在您的代码中,您正在使用header位置方法重定向浏览器上未显示结果的页面。

请使用refresh方法在浏览器上显示缓冲区结果

redirect('/main/accsettings', 'refresh');
//similar to 
header( "refresh:0;url=/main/accsettings" );

当您希望执行此操作时,还应该在javascript内部执行重定向。

以下是实现这一目标的方法:

<script type="text/javascript"> 
    alert("Error! Current password is not correct.");
    setTimeout(function () {
        window.location.href = "http://www.google.nl"; //will redirect to google.
    }, 2000); //will call the function after 2 secs.
</script>