这是我的代码。我已经试过了,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>