2012-07-20 47 views
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來做到這一點,那麼請向我解釋什麼,我應該做的就是它的工作。 在此先感謝! :)

回答

3

這不是PHP如何工作。

如果您希望頁面在5秒後重定向,您必須在JS代碼中執行此操作。 您重定向用戶而不將視圖發送給客戶端。

現在您只需等待5秒鐘即可重定向。所以:

  • 顯示視圖
  • 的JS將有計時器,然後重定向。

的JavaScript代碼將是這樣的:

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

或者你可以使用醇」 meta標籤

<meta http-equiv="refresh" content="5; URL=theURLyouwant"> 
+0

我可以使用PHP的頭的方法做同樣的事情。 – 2015-12-13 14:31:48

1

使用代碼點火器來解決這個問題。使用這個參考類輸出。輸出類將自動加載。你不需要加載這個。使用此功能設置標題。

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

For more detail about this class.

相關問題