【问题标题】:codeigniter, set_flashdata('abc', 'hi);codeigniter, set_flashdata('abc', 'hi);
【发布时间】:2010-12-14 13:33:43
【问题描述】:

我在我的项目中使用 codeigniter。

页面刷新时,

在控制器页面中,

$this->session->set_flashdata('abc', 'hi);

在查看页面中, 回声

$this->session->flashdata('abc'); 

工作正常。

但是,当 ajax 调用时,不是页面刷新, 控制器,

 $this->session->set_flashdata('abc', 'hi);

查看,

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

没用.....

什么都没有回响~ -_-; ajax 没有捕获会话闪存数据的机制?

有什么想法吗?

【问题讨论】:

    标签: ajax session codeigniter


    【解决方案1】:

    闪存数据存储到下一个 http 请求。

    如果您需要更长的时间使用:

    $this->session->keep_flashdata('item');
    

    【讨论】:

      【解决方案2】:

      你可能不应该使用 flashdata

      你只需要回应。回声应该来自您的控制器方法。并且您的 javascript 接受响应应将其插入页面中的元素中。

      【讨论】:

        【解决方案3】:

        您的 Ajax 调用只会将控制器/方法打印到输出缓冲区的任何内容输出。所以如果你添加

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

        对于被 Ajax 方法调用的控制器,它会将回显返回给 Ajax 方法,然后您可以将其显示在页面上。视图中的 echo 语句只会在您的页面刷新时执行,因为 PHP 必须在运行时在服务器上编译该 echo 语句,然后将结果返回给您的浏览器。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-10-18
          相关资源
          最近更新 更多