我只是想知道以下是否可行: 我对JQuery一无所知,但我不知道如何制作自己的javascripts。 当用户登录我的网站时,他们会看到一个“登录已完成”的页面。 根据那句话,我想得到一个句子,倒数秒,直到它们被重定向。有一种简单的方法可以做到这一点吗?
我已经有倒计时功能: 首次调用该函数时,将加载视图'view_login_success'并将$ data []数组传递给它。 $ data ['sec']保留应在屏幕上打印的剩余秒数。 当do-while循环结束时,应该将用户重定向到主页。 发生的事情是,'view_login_success'视图根本没有加载,5秒后,用户被重定向到主页。
function timerIn() {
$now = time();
$this->load->view('view_login_success', $this->data);
do {
if (time() - $now != 0) {
$this->data['sec'] = $this->data['sec'] - 1;
$this->load->view('view_login_success', $this->data);
$now = time();
}
} while ($this->data['sec'] != 1);
$this->data['sec'] = 5;
redirect('user/start');
}
以下是观点:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Login geslaagd</title>
<?php $this->load->view('templates/header2'); ?>
</head>
<body>
<h2 style="text-align: center;"><?php echo strtoupper(substr($this->session->userdata('gebruikersnaam'),0,1));
echo substr($this->session->userdata('gebruikersnaam'),1); ?>, U bent ingelogd!</h2>
<p>U word doorverwezen: <?php echo $sec; ?> seconden...</p>
</body>
<?php $this->load->view('templates/footer'); ?>
如果有一种方法可以在JQuery的Javascript中执行此操作,那么请向我解释我应该怎么做以使其工作。 提前致谢! :)
答案 0 :(得分:3)
这不是php的工作方式。
如果您希望页面在5秒后重定向,则必须在JS代码中执行此操作。 您可以重定向用户而不将视图发送到客户端。
现在你只需要等待5秒钟才能重定向。所以:
javascript代码将是这样的:
setTimeout(function(){
window.location.href = 'theURLyouwant';
},5000)
或者你可以使用ol' meta标签
<meta http-equiv="refresh" content="5; URL=theURLyouwant">
答案 1 :(得分:1)
使用code-igniter解决此问题。使用此引用类输出。输出类将自动加载。你不需要加载它。使用此功能设置标题。
$this->output->set_header('refresh:time-to-redirect; url='.site_url("your-url"));