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()); 
    } 

See user guide

+0

感谢您的支持。我只是在下一个表格完成后才写入数据库。所以只是想暂时显示它。我按照上面的建议更改了会话的语法,并且在页面首次加载时工作。如果我刷新页面,会话变量也会丢失?这是与控制器有关吗?也许它是重新加载数组与空白后变量?我如何做if语句来查看会话是否已经设置?还是我完全在错误的轨道上?谢谢 – Smudger 2013-03-19 09:11:08

+1

是的,如果没有设置post变量,$ this-> input-> post()返回FALSE。所以请先检查一下: if($ this-> input-> post()){ 这里设置数据 – jonixj 2013-03-19 09:40:30

+0

传说,谢谢! – Smudger 2013-03-19 10:29:56

$projectID = $this->input->post('projectID'); 
if($projectID!=''){ 
    $this->session->set_userdata('projectID', $projectID); 
} 

后数据不会在重新加载时使用此代码