如何将数组变量传递给下一页而不将其存储在数据库中

问题描述 投票:0回答:4

我使用CodeIgniter框架发布值并将它们存储为数组。我需要在下一页中使用这些数组值。

我怎样才能实现(不存储在数据库中)?

   function next()
   {      
     if(isset($_POST) && count($_POST) > 0)     
     {
       $data = array(
                'job_type' => $this->input->post('job_type'),
                'job_partner' => $this->input->post('job_partner'),
                'job_manager' => $this->input->post('job_manager'),
                'job_owner' => $this->input->post('job_owner'),
       );
       $this->load->view("ca_recuring_job/cust_page", $data);
       redirect(base_url()."ca_recuring_job/cust_page".$data);
     }else{
       $data['_view'] = 'ca_recuring_job/add';
       $this->load->view('layouts/main',$data);
    } 
   }
javascript php mysql codeigniter
4个回答
0
投票

试试HTML存储,

localStorage.setItem("lastname", "Muthu");
localStorage.getItem("lastname");

https://www.w3schools.com/html/html5_webstorage.asp


0
投票

您的代码的问题是您在加载视图后有重定向。

$this->load->view("ca_recuring_job/cust_page", $data);
redirect(base_url()."ca_recuring_job/cust_page".$data);

而不是重定向只是加载视图并传递您想要下一个视图的数据数组。您无法在重定向上传递数据。

如果您仍想使用重定向功能,请使用会话来存储您的数据,这样当您重定向到另一个控制器入口点时,您可以从会话中获取数据并发送到您的视图,或者您可以直接访问视图,具体取决于您的视图如何设置。

在会话上存储数据:

$this->session->set_userdata('whatever_key_you_want', $data);

要从会话中获取数据,请执行:

$data = $this->session->userdata('whatever_key_you_want');

0
投票

你的redirect使load->view()不起作用。

只需删除此代码redirect(base_url()."ca_recuring_job/cust_page".$data);

您已将$data扔到视图中,如果要在视图中编写数组数据,则必须编写第二个数组名称。你可以像我在你的视图中写下来一样写。

echo $job_type
echo $job_partner
echo $job_manager
echo $job_owner

希望它能解决你的问题。


0
投票

您可以使用CI中的cookie,不要忘记在控制器中加载帮助程序

$这个 - >负载>帮手( '饼干');

如何申报:

$ setcookies = array('name'=>'nameYourcookies','value'=>'valueOfYourcookies','expire'=> time()+(86400 * 365),'path'=>'/',);

$这 - >输入 - > set_cookie($ setcookies);

如何使用它

$ get_cookie = get_cookie('YourCookieName');

https://www.codeigniter.com/userguide3/helpers/cookie_helper.html

© www.soinside.com 2019 - 2024. All rights reserved.