刷新后 Codeigniter 设置的闪存数据不会清除

Codeigniter setflash data wont clear after refresh

大家好,知道如何清除 setflashdata? 我是 codeigniter Framework 的新手。

这是我的控制器视图,具有提交功能和页面添加视图的视图

控制器:-

 public function add(){
            $this->load->view('layout/header');
            $this->load->view('blog/add');
            $this->load->view('layout/footer');
        }
    
        public function submit(){
            $result = $this->m->submit();
            if($result){
                $this->session->set_flashdata('success_msg', 'Record added successfully');
            }else{
                $this->session->set_flashdata('error_msg', 'Faill to add record');
            }
            redirect(base_url('blog/index'));
        }

这是数据表和添加记录按钮的视图 html 页面。

 <h3>Blog list</h3>
    
        <?php
            if($this->session->flashdata('success_msg')){
        ?>
            <div class="alert alert-success alert-status">
                <?php echo $this->session->flashdata('success_msg'); ?>
            </div>
        <?php       
            }
        ?>
    
    
        <?php
            if($this->session->flashdata('error_msg')){
        ?>
            <div class="alert alert-success">
                <?php echo $this->session->flashdata('error_msg'); ?>
            </div>
        <?php       
            }
        ?>

//这个是有添加功能的按钮

<a href="<?php echo base_url('blog/add'); ?>" class="btn btn-primary">Add New</a>

这是数据表视图

<table class="table table-bordered table-responsive">
                <thead>
                    <tr>
                        <td>ID</td>
                        <th>Title</th>
                        <th>Description</th>
                        <th>Created at</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>

/此函数将从您的数据库中获取数据。

<?php 
                    if($blogs){
                        foreach($blogs as $blog){
                ?>
                    <tr>
                        <td><?php echo $blog->id; ?></td>
                        <td><?php echo $blog->title; ?></td>
                        <td><?php echo $blog->description; ?></td
                    </tr>
                <?php
                        }
                    }
                ?>
                </tbody>
            </table>

在你的视图中使用这个:-

<?php 
    if($this->session->flashdata('success')){
    ?>
    <div class="alert alert-success"  style="display:none;"> 
    <?php  echo $this->session->flashdata('success'); ?>
    <?php    
    } else if($this->session->flashdata('error')){
    ?>
    <div class = "alert alert-danger"  style="display:none;">
    <?php echo $this->session->flashdata('error'); ?>
    </div>
    <?php } ?>

把这个放在你的前面 </body> 标签视图:-

<script type="text/javascript" src="<?=base_url()?>assets/js/jquery.min.js" ></script>

 <script type="text/javascript" rel="stylesheet"> 
$('document').ready(function(){
 $(".alert").fadeIn(1000).fadeOut(5000);
 });
 </script> 

这是一个 CodeIgniter 问题。

对于您的问题解决方案,请使用下面的视图

查看:

<?php
if ($this->session->flashdata ( 'success' )) {
    ?>
    <div class="alert alert-success"> 
    <?php  echo $this->session->flashdata('success'); ?>
    <?php
    $this->session->unset_userdata ( 'success' );
} else if ($this->session->flashdata ( 'error' )) {
    ?>
    <div class="alert alert-danger">
    <?php echo $this->session->flashdata('error'); ?>
    </div>
    <?php
    $this->session->unset_userdata ( 'error' );
}
?>