【问题标题】:Codeigniter session flashdata and ajaxCodeigniter 会话 flashdata 和 ajax
【发布时间】:2013-01-14 08:06:54
【问题描述】:

我正在使用 codeigniter flashdata 在重定向后设置消息。好吧,如果我在没有 ajax 的情况下使用它,一切都会正常工作。如果我回显使用 flashdata 收到的消息,它仍然可以正常工作,但是如果我用 F5 刷新一次,我仍然会看到该消息。 Flashdata 在第二次刷新后被清除...我该如何解决这个问题?

这就是我的函数的样子:

public static function message()
{
    if ( ! empty(self::$message['message']))
    {
        // build message
        $message = '<div class="alert alert-' . self::$message['type'] . '"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>' . self::$message['heading'] . '</strong>' . self::$message['message'] . '</div>';

        // clear static message array
        self::$message = array();

        // return static message
        return $message;
    }
    else
    {
        if ( class_exists('CI_Session'))
        {
            // get flash message
            $message = self::$CI->session->flashdata('message');

            // clear flash data
            self::$CI->session->set_flashdata('message', null);

            // process flash message
            if ( ! empty($message))
            {
                // slice flashdata into single parts
                $message = explode('::', $message);

                // return flash message
                return '<div class="alert alert-' . $message[0] . '"><button type="button" class="close" data-dismiss="alert">&times;</button><strong>' . $message[1] . '</strong>' . $message[2] . '</div>';
            }
        }
    }

    return '';
}

【问题讨论】:

  • F5 + ctrl 清除缓存。 F5 只刷新不丢失会话数据的地方

标签: javascript ajax codeigniter session message


【解决方案1】:

形成CI Manual

如果您发现需要通过附加请求保留 flashdata 变量,您可以使用 keep_flashdata() 函数。

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

所以你需要修改你的 AJAX 处理方法来保留你需要的项目。

【讨论】:

  • 确实,我误解了你的问题。您是否以任何方式修改/扩展了 CI Session 库?
猜你喜欢
  • 2013-07-28
  • 1970-01-01
  • 2021-10-07
  • 1970-01-01
  • 2016-05-13
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多