codeigniter - 在会话中存储发布数据并在视图中显示
问题描述:
我有用户填充的codeigniter表单。在提交时将输入发布到数组。这个数组然后显示在作为变量加载的新视图上。codeigniter - 在会话中存储发布数据并在视图中显示
我的问题是,如果我刷新视图出于任何原因,这些职位会丢失,新视图不能显示变量。
如何将发布的数组存储为会话值,然后如何访问会话变量。
所以我的控制器:
function new_blank_order_lines()
{
$data = array(
'customer' =>$this->input->post('customer'),
'period' =>$this->input->post('period'),
'buom' =>$this->input->post('buom')
);
$this->load->view('sales/new_blank_order_lines',$data);
}
上new_blank_order_lines
我可以echo $customer
显示变量,如果我现在刷新视图new_blank_order_lines
,视图被重载,交变量丢失。所以我想将$ data数组存储为一个会话,所以即使在页面重新加载/刷新之后它仍然可用。
有什么建议吗?
我想是这样的:
function new_blank_order_lines()
{
$data = array(
'customer' =>$this->input->post('customer'),
'period' =>$this->input->post('period'),
'buom' =>$this->input->post('buom')
);
$this->session->$data
$this->load->view('sales/new_blank_order_lines',$data);
}
这显然是行不通的?如果确实如此,我该如何回应变量的值?
一如既往的感谢,
答
你如何处理用户提交给表单的信息?它没有保存到数据库或类似的?如果是这种情况,那你为什么不从中检索数据?
如果你只是想能够whow暂时将数据,你可以使用像会话变量在最后一个例子,但有一些修改:
function new_blank_order_lines()
{
$data = array(
'customer' =>$this->input->post('customer'),
'period' =>$this->input->post('period'),
'buom' =>$this->input->post('buom')
);
$this->session->set_userdata($data);
$this->load->view('sales/new_blank_order_lines',$this->session->all_userdata());
}
答
$projectID = $this->input->post('projectID');
if($projectID!=''){
$this->session->set_userdata('projectID', $projectID);
}
后数据不会在重新加载时使用此代码
感谢您的支持。我只是在下一个表格完成后才写入数据库。所以只是想暂时显示它。我按照上面的建议更改了会话的语法,并且在页面首次加载时工作。如果我刷新页面,会话变量也会丢失?这是与控制器有关吗?也许它是重新加载数组与空白后变量?我如何做if语句来查看会话是否已经设置?还是我完全在错误的轨道上?谢谢 – Smudger 2013-03-19 09:11:08
是的,如果没有设置post变量,$ this-> input-> post()返回FALSE。所以请先检查一下: if($ this-> input-> post()){ 这里设置数据 – jonixj 2013-03-19 09:40:30
传说,谢谢! – Smudger 2013-03-19 10:29:56