2017-09-05 68 views
0

我需要延迟执行重定向功能以显示警报消息。我已经使用了睡眠函数,但结果是它只是在从视图调用方法之前延迟。不要在方法上执行一些行,延迟并执行下一行。[CodeIgniter]:在控制器中执行重定向功能之前的延迟时间

这是我的代码:

if($thisJumlah != 0) { 
     echo '<script language="javascript">'; 
     echo 'alert("Warning! The role you are to going delete has some employees")'; 
     echo '</script>'; 

     sleep(3); 
     redirect('role'); 
    } 
    else 
    { 
     $this->modelapp->delete($tableName, $idName, $thisID); 
     redirect('role'); 
    } 

回答

1

它是清洁要做到这一点使用javascript:

if($thisJumlah != 0) { 
    echo '<script language="javascript">' . 
    'alert("Warning! The role you are to going delete has some employees");' . 
    'setTimeout(function(){ window.location.href = "/role"; }, 3000);' . 
    '</script>'; 
} 
else 
{ 
    $this->modelapp->delete($tableName, $idName, $thisID); 
    redirect('role'); 
} 

因此首先要提醒您的留言然后setTimeout您将延迟重定向3000毫秒(3秒)到您的网址“/角色”。

1

PHP sleep()功能使延迟在整个程序的执行。所以你的程序正在等待3秒钟,并且从脚本的顶部开始执行(Javascript在等待之后也会被执行)。

您可以使用如下头功能:

header("refresh:3; url=your_url_here"); 

更多关于休眠功能http://php.net/manual/en/function.sleep.php