2

有没有办法或一些技巧在codeiginter中使用redirect()函数发布数据数组或单个变量字符串数据?

4

2 回答 2

13

redirect您通过这个过程从一个控制器或另一个控制器中使用时,所有发布数据都将被销毁,除非您将它们存储在会话中,这就是我的做法

$data = array('firstname'=>'fname','lastname'=>'lastname');
// i store data to flashdata
$this->session->set_flashdata('lolwut',$data);
// after storing i redirect it to the controller
redirect('controller/method')

所以在你的重定向控制器上,你可以通过$this->session->flashdata('lolwut') 注意我没有使用flashdata它来访问它userdata,它flashdata会在下一个过程中自行销毁。

在此处阅读更多 flashdata会话类

于 2013-03-06T07:27:49.350 回答
1

首先,为什么在重定向时需要发布数据:

您可以拥有处理所有代码的 post 函数,然后在成功或失败后重定向取决于您的使用情况

function method()
{
    //do something
    redirect('path/to/method');
}

如果您想通过其他页面传递变量,您可以通过以下方式执行此操作:

  1. 将数据保存到会话中,$this->session->set_data($data);$this->set_flashdata($data);取决于您的使用情况
  2. 传入 URL 作为参数而不是表单提交

希望对你有所帮助

于 2013-03-06T07:38:07.890 回答