【问题标题】:Getting flashdata in Codeigniter在 Codeigniter 中获取 flashdata
【发布时间】:2015-02-21 11:26:37
【问题描述】:

我正在将 codeigniter flashdata 中的数组保存为

//Show success message
$data = array(
 'message' => 'My message',
 'message2' => 'New Message'
);
$this->session->set_flashdata($data);

也试过了

$this->session->set_flashdata('myData', $data);

重定向页面后,我尝试检索为

echo $this->session->flashdata('message');

这对我也不起作用

print_r($this->session->flashdata('myData'));

不工作

如何将flashdata设置为数组?

【问题讨论】:

  • 请完整代码。尤其是您尝试阅读会话的部分。

标签: codeigniter session redirect


【解决方案1】:

将该闪存数据保存在数组中,例如:

$data = array(
 'message' => 'My message',
 'message2' => 'New Message'
);
$this->session->set_flashdata("someone",$data);
redirect("home","refresh");

And in view:

print_r($this->session->flashdata('someone'));

【讨论】:

  • echo 我认为比 print r <?php echo $this->session->flashdata('notification'); ?>更适合查看
  • @mustang83 是的,但是如何回显数组变量仅供参考
【解决方案2】:

示例:来自另一个帖子。

示例 1

if($insert_status){
    $notification = "Record Inserted";  
} else {
    $notification = "Insertion Failed";
}

$this->session->set_flashdata('notification', $notification);
redirect('controller/method','refresh');

示例 2

$notification  = array(
 'message' => 'test',
 'message_one' => 'text'
);

$this->session->set_flashdata('notification', $notification);
redirect('controller/method','refresh');

How to use codeigniter flash variable?

http://www.codeigniter.com/user_guide/libraries/sessions.html

您必须将回显代码放置到您重定向到的控制器的视图中。

<?php echo $this->session->flashdata('notification');?>

引导

<?php if ($this->session->flashdata('notification')) { ?>
<div class="alert alert-success">
<i class="fa fa-check-circle"></i> <?php echo $this->session->flashdata('notification'); ?>
</div>
<?php } ?>

【讨论】:

    【解决方案3】:

    对于你的情况,当你使用 $this-&gt;session-&gt;set_flashdata('myData', $data); 时试试这个

    $myData = $this->session->flashdata('myData');
    echo "Message: ".$myData['message'].PHP_EOL;
    echo "Message2: ".$myData['message2'];
    

    会解决你的问题。

    【讨论】:

      【解决方案4】:

      在控制器处

      $this->session->set_flashdata('message_name', 'This is my message');
      
      redirect(base_url(),$data);
      

      在查看页面

      <?php echo $this->session->flashdata('message_name'); ?>
      

      【讨论】:

        猜你喜欢
        • 2014-03-26
        • 2013-09-21
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 2016-03-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多