У меня есть профиль профиля пользователя, который позволяет пользователю изменять свою информацию.Codeigniter с обновлением резервуара db table
Все, кажется, работает нормально, за исключением случаев, когда форма отправлена, и таблица профилей обновилась, но поля ввода, в которых отображалась информация пользователя, не обновлялись. Он все еще отображает старую информацию. Но если я снова обновляю страницу, она отображает правильную.
Есть ли способ получить новую информацию для отображения сразу после отправки?
Вот мой код: Tank_auth:
function edit_user_profile($avatar, $gender, $country)
{
$user_id = $this->ci->session->userdata('user_id');
$data = array(
'avatar' => $avatar,
'gender' => $gender,
'country' => $country,
);
$this->ci->users->edit_user_profile($user_id, $data);
return NULL;
}
Контроллер:
function edit_profile()
{
if (!$this->tank_auth->is_logged_in()) { // not logged in or not activated
redirect('/login/');
} else {
// Get profile data
$profile = $this->users->get_user_profile_by_id($this->tank_auth->get_user_id());
$data['avatar_'] = $profile->avatar;
$data['gender_'] = $profile->gender;
$data['country_'] = $profile->country;
$this->form_validation->set_rules('avatar', 'Avatar', 'trim|required');
$this->form_validation->set_rules('country', 'Country', 'trim|required');
$this->form_validation->set_rules('gender', 'Gender', 'trim|required');
$data['errors'] = array();
if ($this->form_validation->run()) { // validation ok
// Get input fields value
$avatar = $this->form_validation->set_value('avatar');
$country = $this->form_validation->set_value('country');
$gender = $this->form_validation->set_value('gender');
$this->tank_auth->edit_user_profile($avatar, $gender, $country);
} else {
$errors = $this->tank_auth->get_error_message();
foreach ($errors as $k => $v) $data['errors'][$k] = '<p>'.$this->lang->line($v).'</p>';
}
$this->load->view('auth/edit_profile_form', $data);
}
}
Модель:
function edit_user_profile($user_id, $data)
{
$this->db->set('avatar', $data['avatar']);
$this->db->set('gender', $data['gender']);
$this->db->set('country', $data['country']);
$this->db->where('user_id', $user_id);
$this->db->update($this->profile_table_name, $data);
return $this->db->affected_rows() > 0;
}
Спасибо! Он отлично работает после того, как я положил информацию о пользователе в конце. –
Вы приветствуете :-) –