首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Codeigniter中发布同一控制器两次时使用flashdata

在Codeigniter中发布同一控制器两次时使用flashdata
EN

Stack Overflow用户
提问于 2013-01-25 15:11:59
回答 2查看 2.3K关注 0票数 0

我试图提交一个编辑表格,编辑用户的学术细节,这些细节在数据库中有唯一的id和我的代码在简短的代码如下:

代码语言:javascript
复制
class edit extends ci_controller
{

function user_academics($id = NULL)
    {
        if(isset($id) == FALSE)     //if link is ./edit/user_academics
        {
            $id = NULL;
            $link = site_url('profile');
            show_error("Invalid Page Request! <a href='$link' Go to Profile </a>");
        }

        $user_id = $this->session->userdata('user_id');        
        $data['fill'] = $this->edit_model->get_user_academics($id);

        if($user_id != $data['fill']['user_id'])    // check if logged in user is accessing his record or others
        {
             $link = site_url('profile');
            show_error("This is an Invalid Request ! <a href='$link'>Go to Profile </a>");
        }
        else // actual work starts here
        {
            $this->session->set_flashdata('ua_id',$id); // update_academics will get this data

            $this->load->view('edit/edit_3_view',$data);

        }
    }

 function update_academics()
    {
        $ua_id =  $this->session->flashdata('ua_id');   // flash data used here .
        if( !$ua_id )
        {
            show_error('Sorry, This request is not valid!');

        }
      $academics = array( 
            // All post values
        );

        $this->edit_model->update_user_academics($academics,$ua_id);
        //print_r($academics);
        redirect('profile');

    }

}

现在的问题是-如果我打开两个不同的记录进行编辑,那么它将只设置一个会话闪存值。-无论我编辑什么,最后一个闪存值的现有值都会更新。如果我在上面的代码中错了,请给我建议另一种方式或纠正我。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-25 15:27:08

将flashdata保存在数组中,如下所示:

代码语言:javascript
复制
$myArr = array('value 1', 'value 1');
//set it
$this->session->set_flashdata('some_name', $myArr);

在视图中:

代码语言:javascript
复制
$dataArrs = $this->session->flashdata('some_name');
//loop thru $dataArrs to show the flashdata
票数 1
EN

Stack Overflow用户

发布于 2013-01-25 15:28:34

闪存数据就像变量一样,只有在下一个请求中才能使用,你可以通过使用两个不同的key来绕过这种行为,这样当你使用Flash数据来显示消息时,你可以访问具有特定记录id的key。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14517069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档