如果会话数据存在,则在视图中输出

时间:2012-11-20 17:35:22

标签: codeigniter codeigniter-2

所以我试图将会话的变量值输出到视图中(仅当它存在时)。但我似乎无法让它发挥作用。没错。没有。我错过了什么?以为我现在已经把它打包了 - 猜不是......

在控制器... FYI中,$ data被分配给视图(即$this -> load -> view('view', $data);

$data['campaign_name'] = $this -> session -> userdata('campaign_name');

这是我想要输出的视图中的php片段。简而言之,如果会话存在,则输出它。如果没有,什么都不做。

<input type="text" name="campaign_name" class="wizardInput nameField" value="<? if (isset($campaign_name)) ;?> ">

任何?

编辑好的,我应该提到我正在尝试将会话值输出为FORM值。上面修改了视图代码。表单提交的值就像值一样 - 甚至发送值。但是,它在文本输入中不可见......

1 个答案:

答案 0 :(得分:8)

您可以在视图中轻松完成此操作:

if($this->session->userdata('campaign_name')){
 // do somenthing cause it exist
}

然后,如果您想将会话数据作为输入的值来执行此操作:

<input type="text" name="campaign_name" class="wizardInput nameField" value="<?php echo $this->session->userdata('campaign_name') ?>">

不需要控制是否存在会话用户数据因为如果它不存在则不打印任何内容,导致userdata()方法返回false

然后您不需要通过$data[] array传递会话数据,因为可以从任何地方检索会话数据(模型/控制器/视图/钩子/库/助手等)