Javascript Codeigniter会话flashdata和ajax

Javascript Codeigniter会话flashdata和ajax,javascript,ajax,codeigniter,session,message,Javascript,Ajax,Codeigniter,Session,Message,我使用codeigniter flashdata在重定向后设置消息。如果我在没有ajax的情况下使用它,一切正常。如果我回显使用flashdata接收的消息,它仍然可以正常工作,但如果我使用F5刷新一次,我仍然可以看到该消息。第二次刷新后,Flashdata将被清除。。。我如何解决这个问题 这就是我的函数的样子: public static function message() { if ( ! empty(self::$message['message'])) {

我使用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 '';
}
公共静态函数消息()
{
如果(!empty(self::$message['message']))
{
//构建消息
$message='×;'。self::$message['heading'].'。self::$message['message'].';
//清除静态消息数组
self::$message=array();
//返回静态消息
返回$message;
}
其他的
{
如果(类_存在('CI_会话'))
{
//收到快讯
$message=self::$CI->session->flashdata('message');
//清除闪存数据
self::$CI->session->set_flashdata('message',null);
//处理快闪消息
如果(!empty($message))
{
//将flashdata切片为单个部分
$message=explode(“::”,$message);
//返回快闪信息
返回“×;”.$message[1]”。“.$message[2]”;
}
}
}
返回“”;
}
表格:

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

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

因此,您需要修改AJAX处理方法以保留所需的项。

表单:

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

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


因此,您需要修改AJAX处理方法以保留所需的项。

F5+ctrl清除缓存。其中F5仅刷新且不丢失会话数据F5+ctrl清除缓存。F5只刷新,不丢失会话数据。事实上,我误解了你的问题。您是否以任何方式修改/扩展了CI会话库?事实上,我误解了您的问题。您是否以任何方式修改/扩展了CI会话库?