在完成特定任务后,我使用以下代码将用户重定向到上一页。
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';
您能告诉我如何发送然后检索它吗?
谢谢:)
答案 0 :(得分:10)
您可以使用CI的set_flashdata。刷新页面消息变为空白后,您只能使用该消息一次。
$this->session->set_flashdata('message', 'Authentication failed');
redirect(site_url('message/index/'), 'refresh');
在该页面上,您可以通过
抓住此消息$message = $this->session->flashdata('message').
答案 1 :(得分: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...
}