删除codeigniter中的记录后,flashdata无法正常工作

时间:2014-07-04 15:37:18

标签: php jquery codeigniter

美好的一天。我是CodeIgniter的新手,我试图使用flashdata来展示成功的"删除记录后的消息。我使用jQuery来显示我的数据。

以下是Model页面的代码:

function delete_post($postID)
{
    $this->db->where('post_id', $postID);
    $this->db->delete('khanposts');
}

Controller页码:

function deletepost($postID)
{
    $this->khanpost->delete_post($postID);
    $this->session->set_flashdata('msg', 'Record Deleted!');
    redirect(base_url().'khanposts/index/');
}

View页码:

foreach ($posts as $row){
echo '<tr><td><a href="' .base_url(). 'khanposts/deletepost/' .$row['post_id']. '"><i>Delete</i></a></td></tr>';
}
<script>
$(document).ready(function() {
$('.delmsg').hide();
<?php if($this->session->flashdata('msg')){ ?>
$('.delmsg').html('<?php echo $this->session->flashdata('msg'); ?>').show();
});
<?php } ?>
</script>

记录被删除但删除后我没有看到任何消息。我做错了吗?任何解决方案都会有帮助。 TNX。

2 个答案:

答案 0 :(得分:0)

首先,但可能不会有所作为,但是,我已经在视图代码中颠倒了第2行到第3行和第3行到最后一行:

foreach ($posts as $row){
    echo '<tr><td><a href="' .base_url(). 'khanposts/deletepost/' .$row['post_id']. '"><i>Delete</i></a></td></tr>';
}

<script>
    $(document).ready(function() {
        $('.delmsg').hide();
        <?php if($this->session->flashdata('msg')){ ?>
            $('.delmsg').html('<?php echo $this->session->flashdata('msg'); ?>').show();
        <?php } ?>
    });
</script>

我猜这似乎是加载会话库的问题。因此,通过添加&#39; session&#39;来检查您是否在application / config / autoload.php配置文件中加载了会话类。到$ autoload [&#39; libraries&#39;]数组:$autoload['libraries'] = array('session'); ...或在控制器中使用$this->load->library('session')

如果它仍然不起作用,请确保您处于&#34;开发模式&#34;在根index.php文件中,您的开发案例如下所示:

    case 'development':
         error_reporting(E_ALL);
         ini_set('display_errors', 1);

...看看PHP是否可以为您提供有关正在进行的更多信息。

祝你好运! : - )

答案 1 :(得分:0)

您可以使用php而不是Jquery显示错误消息。你可以像这样使用

if($this->session->flashdata('msg'))
{?>
  <div class="delmsg"><?php echo $this->session->flashdata("msg"); ?></div>

<?php }