我在使用CodeIgniter 2.2.6会话变量时遇到了麻烦。我有一个视图,其中一些数据由用户输入。然后,用户可以按下提交按钮,此数据将转到Web服务,处理并返回到同一视图(使用控制器及其模型)。
Bellow是视图代码( v_index ),我将数据保存在CodeIgniter会话变量中。
<?php
// loads the variables that will be used in print
$this->load->library('session');
$array_items = array(
'numberVehiclesUsed' => $numberVehiclesUsed,
'shortestRoute' => $shortestRoute,
'VRPSolution' => $VRPSolution,
);
$this->session->set_userdata($array_items);
?>
所以,当我运行下面的代码时,我可以看到所有会话数据,并且一直都是正常的。我的应用程序调用Web服务器,获取返回并每次保存在会话变量中。
<?php
echo "<pre>";
print_r($this->session->all_userdata());
echo "</pre>";
?>
所以,我有另一个屏幕,我想使用会话数据,称为“ Imprimir ”(这意味着打印)。控制器代码如下。 print_r是用于debuging提议,offcourse。
<?php
if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class C_imprimir extends CI_Controller
{
function __construct()
{
parent::__construct();
//load the session library
$this->load->library('session');
}
public function index()
{
$dados['numberVehiclesUsed'] = $this->session->userdata('numberVehiclesUsed');
$dados['shortestRoute'] = $this->session->userdata('shortestRoute');
$dados['VRPSolution'] = $this->session->userdata('VRPSolution');
echo "<pre>";
print_r($this->session->all_userdata());
echo "</pre>";
$this->load->view('v_imprimir', $dados);
}
}
?>
当我第一次运行代码时,它会将数据保存在会话变量中,并且我可以在控制器“Imprimir”中加载上面的代码。 print_r显示所有数据都存在且没问题。
问题是,当我使用新数据再次运行第一个视图(v_index)时,会话变量会更新,但控制器“Imprimir”仅加载第一个(和旧的)数据,并且永远不会更新它。
我不知道我做错了什么。其他Stackoverflow关于CodeIgniter会话变量问题的问题对我没有帮助。
有什么建议吗?