【问题标题】:flashdata codeigniter is not showingflashdata codeigniter 未显示
【发布时间】:2018-01-24 08:55:16
【问题描述】:

我正在学习 youtube 上的教程,但遇到 flashdata 的问题。在我遵循的教程中它运行良好时没有出现。这是代码

function create(){

    $this->load->library('session');
    $this->load->module('site_security');
    $this->site_security->_make_sure_is_admin();

    $update_id = $this->uri->segment(3);
    $submit = $this->input->post('submit', TRUE);

    if ($submit == "Submit"){
        //Process the form
        $this->load->library('form_validation');
        $this->form_validation->set_rules('item_title', 'Item Title', 'required|max_length[240]');
        $this->form_validation->set_rules('item_price', 'Item Price', 'required|numeric');
        $this->form_validation->set_rules('was_price', 'Was Price ', 'numeric');
        $this->form_validation->set_rules('item_description', 'Item Description', 'required');

        if ($this->form_validation->run() == TRUE){
            //get the variables
            $data = $this->fetch_data_from_post();

            if (is_numeric($update_id)){
                //update the item details
                $this->_update($update_id, $data);
                $flash_msg      = "The item details were successfully updated.";
                $value          = '<div class="alert alert-success" role="alert">'.$flash_msg.'</div>';
                $this->session->set_flashdata('item', $value);
                redirect('store_items/create/'.$update_id);
            }else{
                //insert a new file
                $this->_insert($data);
                $update_id      = $this->get_max();//get the ID of the new item
                $flash_msg      = "The item was successfully added.";
                $value          = '<div class="alert alert-success" role="alert">'.$flash_msg.'</div>';
                $this->session->set_flashdata('item', $value);
                redirect('store_items/create/'.$update_id);
            }
        }
    }

    if ((is_numeric($update_id)) && ($submit != "Submit")){
        $data = $this->fetch_data_from_db($update_id);
    }else{
        $data = $this->fetch_data_from_post();
    }

    if (!is_numeric($update_id)){
        $data['headline'] = "Add New Item";
    }else{
        $data['headline'] = "Update Item Details";
    }

    $data['update_id']      = $update_id;
    $data['flash']          = $this->session->flashdata('item');
    $data['view_module']    = "store_items";
    $data['view_file']      = "create";
    $this->load->module('templates');
    $this->templates->admin($data);
}

在看来,我只是回显 $flash。任何帮助将不胜感激。

【问题讨论】:

  • 只有在页面重新加载后才能使用闪存数据
  • 当您传递 $data['flash'] 时,只需传递字符串并在各自的视图中,如果它不为空,则显示值
  • flashdata 仅适用于下一页请求。你为什么不在你的案例中使用 tempdata?
  • 那么,代码应该如何? @DeadManAlive
  • @MuhammadAbdurrouf 这个代码是做什么的$this-&gt;templates-&gt;admin ??

标签: php codeigniter frameworks


【解决方案1】:

您可以在查看页面中使用此代码

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

【讨论】:

【解决方案2】:

不需要传递$data['flash']变量。

您可以直接从视图中调用该变量。例如echo $this-&gt;session-&gt;flashdata('item')

【讨论】:

  • 试试这个: if($this->session->flashdata('item')): echo $this->session->flashdata('item'); endif;
  • 什么都没有发生
【解决方案3】:

我终于得到了答案。这是我当前的 CI 版本的问题。所以我刚刚升级到最新的,它工作正常。或者实际上我仍然可以使用我当前的 CI 版本,但我需要降级我的 PHP 版本。就这样。顺便说一句,非常感谢那些已经在这里帮助我的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-13
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-03
    • 1970-01-01
    相关资源
    最近更新 更多