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

时间:2018-02-27 14:48:23

标签: javascript php mysql codeigniter

我使用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);
    } 
   }

5 个答案:

答案 0 :(得分:0)

尝试HTML存储

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

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

答案 1 :(得分: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');

答案 2 :(得分: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

希望它能解决你的问题。

答案 3 :(得分:0)

您可以使用来自CI的Cookie, 别忘了在控制器中加载帮助器

$这 - >负载>辅助( '的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

答案 4 :(得分:-1)

如果您的下一页是“ca_recuring_job/cust_page”并且想要传递该数组,只需使用 $this->load->view("ca_recuring_job/cust_page", $data); 加载该视图

并删除/注释此行 redirect(base_url()."ca_recuring_job/cust_page".$data); 。此行正在影响您的视图加载。

这可能对您有所帮助。