我在我的项目中使用codeigniter。
页面刷新时,
在控制器页面中,
$this->session->set_flashdata('abc', 'hi);
在视图页面中, 回声
$this->session->flashdata('abc');
工作正常。
但是,当ajax调用时,不是页面刷新, 控制器,
$this->session->set_flashdata('abc', 'hi);
查看,
echo $this->session->flashdata('abc');
不起作用.....
什么都不回应〜-_-; ajax没有捕获会话闪存数据的机制?任何想法?
答案 0 :(得分:3)
闪存数据存储到下一个http请求。
如果您需要更长时间使用:
$this->session->keep_flashdata('item');
答案 1 :(得分:0)
你可能不应该使用flashdata
你只需回声。回声应来自您的控制器方法。并且您的javascript接受回复应该将其插入到您网页的元素中。
答案 2 :(得分:0)
您的Ajax调用只会输出控制器/方法打印到输出缓冲区的任何内容。所以如果你添加
echo $this->session->flashdata('abc');
到由Ajax方法调用的控制器,它将回显到Ajax方法,然后您可以在页面上显示该方法。视图中的echo语句只有在刷新页面时才会执行,因为PHP必须在运行时在服务器上编译echo语句,然后将结果返回给浏览器。