1

我只是想知道以下是否可能:我对 JQuery 一无所知,也不知道如何制作自己的 javascript。当用户登录我的网站时,他们会看到一个显示“登录已完成”的页面。在这句话下,我想得到一个倒计时秒数的句子,直到它们被重定向。有没有一种简单的方法可以做到这一点?

我已经有一个倒计时函数:第一次调用该函数时,会加载视图“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'); ?>

如果有办法在 Javascript 的 JQuery 中做到这一点,那么请向我解释我应该怎么做才能让它工作。提前致谢!:)

4

2 回答 2

3

这不是 php 的工作方式。

如果您希望页面在 5 秒后重定向,您必须在 JS 代码中这样做。您重定向用户而不将视图发送到客户端。

现在,您只需要等待 5 秒钟即可重定向。所以:

  • 显示视图
  • JS 将有计时器,然后重定向。

javascript代码将是这样的:

setTimeout(function(){
  window.location.href = 'theURLyouwant';
},5000)

或者你可以使用 ol' 元标记

<meta http-equiv="refresh" content="5; URL=theURLyouwant">
于 2012-07-20T16:57:34.953 回答
1

使用代码点火器来解决这个问题。使用此参考类输出。输出类将自动加载。你不需要加载这个。使用此功能设置标题。

 $this->output->set_header('refresh:time-to-redirect; url='.site_url("your-url"));

有关此类的更多详细信息。

于 2015-12-13T14:42:20.803 回答