我正在尝试提交编辑用户学术详情的EDIT表单, 这些详细信息在数据库中具有唯一ID,而我的代码在短视图中如下所示:
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');
}
}
现在的问题是 - 如果我打开两个不同的记录进行编辑,那么它将只设置一个会话Flash值。 - 无论我编辑什么,最后一个闪存值的现有值都会更新。 如果我在上面的代码中错了,请建议我另一种方式或纠正我。感谢
答案 0 :(得分:1)
将flashdata保存在数组中,例如:
$myArr = array('value 1', 'value 1');
//set it
$this->session->set_flashdata('some_name', $myArr);
并且在视野中:
$dataArrs = $this->session->flashdata('some_name');
//loop thru $dataArrs to show the flashdata
答案 1 :(得分:0)
Flash数据就像变量一样,仅在下一个请求中可用,您可以通过使用两个带有记录ID的不同键来绕过此行为,这样当您使用Flash数据显示消息时,您可以访问具有特定记录的键ID。