【问题标题】:Codeigniter setflash data wont clear after refreshCodeigniter设置flash数据刷新后不会清除
【发布时间】:2021-05-25 09:19:17
【问题描述】:

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

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

控制器:-

 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 codeigniter model-view-controller flash-message codeigniter-query-builder


【解决方案1】:

这是一个 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' );
}
?>

【讨论】:

  • 我刚试过,但添加记录后没有显示闪存数据
  • 我想删除java脚本怎么样?
  • Javscript 在哪里?
  • 这个
  • 该脚本在 5 秒后自动警报框会隐藏,如果您不想隐藏然后删除该脚本。当您刷新页面或移动到另一个屏幕时,警报框会自动隐藏。
【解决方案2】:

在您的视图中使用它:-

<?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 } ?>

把这个放在你的&lt;/body&gt;标签视图之前:-

<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> 

【讨论】:

  • 我已经尝试过了,但在褪色后我尝试刷新它再次显示 flashdata。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2011-12-07
  • 2019-02-11
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多