我試圖提交其編輯用戶學者詳細一個編輯表單張貼同一控制器兩次, 這些細節都有唯一的ID在DB和我的短代碼看起來象下面這樣:使用flashdata而笨
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');
}
}
現在的問題是 - 如果我打開兩個不同的記錄進行編輯,那麼它將只設置一個Session Flash值。 - 無論我編輯什麼,最新的閃存值的現有值都會更新。 如果我在上面的代碼中出現錯誤,請建議我使用另一種方法或糾正我。由於
嘗試將$ id存儲在數組中。 $ data [] = $ id;然後傳遞數組或序列化數組並傳遞給flashdata – Matt