2011-12-20 46 views
6

我使用下面的代码的特定任务完成后重定向我的用户一页时发送可变数据。如何重定向到前一页

 if (isset($_SERVER['HTTP_REFERER'])) 
     { 
     $this->session->set_userdata('previous_page', $_SERVER['HTTP_REFERER']); 
     } 
     else 
     { 
     $this->session->set_userdata('previous_page', base_url()); 
     } 

上面的代码我在控制器中使用,而在另一个控制器中执行以下代码..

.... some other stuffs... I am updating database values here.... 

     $this->db->where('t_expenseid', $t_expenseid); 
     query=$this->db->update('teacherexpense', $data); 


     redirect($this->session->userdata('previous_page')); 

上面的代码工作正常,但我面对的问题是,我想送一个成功消息与重定向,以便当前一页加载成功消息弹出(我已经有jQuery的)。为此,我在重定向上添加了以下代码,但我不知道如何将$ data或消息与重定向一起发送。如果我能够发送它如何检索前一页控制器中的值。

$data['msg']='Information Has been Successfully Inserted'; 

请问如何发送它,然后检索它?

谢谢:)

回答

10

您可以使用set_flashdata 。刷新页面消息变空白后,只能使用该消息的一次。

$this->session->set_flashdata('message', 'Authentication failed'); 

    redirect(site_url('message/index/'), 'refresh'); 

这页你可以赶上通过

$message = $this->session->flashdata('message'). 
+0

它的工作这条消息,由于我一直在寻找这样:) – Troubleshooter 2015-09-10 19:24:10

+0

我们没有得到通过Flash的消息,但是我们失去了自动生成的消息通过“validation_errors()”,有什么方法可以捕获它们而不是写我们自己的消息? – 2016-05-13 07:02:37

2

考虑使用flashdata,通常用在要重定向到一个页面,并显示一条消息的情况。请记住,该消息只会显示一次。如果用户刷新页面,则消息将消失。

这里是你将如何使用它:

$this->db->where('t_expenseid', $t_expenseid); 
query = $this->db->update('teacherexpense', $data); 

// set flashdata 
$this->session->set_flashdata('message', 'Information Has been Successfully Inserted'); 

redirect($this->session->userdata('previous_page')); 

然后在“前一页”,你可以检查的消息,并显示它,如果它存在:

// get flashdata 
$message = $this->session->flashdata('message'); 

if ($message) { 
    // pass message to view, etc... 
}