В моей форме есть несколько флажков. И они в массиве. Когда я по какой-то причине отправляю форму, флажки Изменить снимаются. А затем, когда вы вернетесь, чтобы посмотреть, что флажок не установлен.
Я знаю, что вызывает проблему: $this->form_validation->set_rules('permission[modify]', '' , 'callback_modify_check_edit')
Похоже, ему не нравится, permission[modify] или permission[modify] [] в set_rules
Как я могу это решить?
Функция редактирования контроллера:
public function edit() {
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'User Group Name', 'required');
$this->form_validation->set_rules('user_group_id', 'User Group Id', 'required');
$this->form_validation->set_rules('permission[modify]', '', 'callback_modify_check_edit');
if ($this->form_validation->run($this) == FALSE) {
$this->getForm();
} else {
$this->load->model('admin/user/model_user_group');
$this->model_user_group->editUserGroup($this->uri->segment(4), $this->input->post());
$this->db->select('permission');
$this->db->from($this->db->dbprefix . 'user_group');
$this->db->where('user_group_id', $this->session->userdata('user_group_id'));
$user_group_query = $this->db->get();
$permissions = unserialize($user_group_query->row('permission'));
$this->session->set_userdata($permissions);
$this->session->set_flashdata('success', 'Congratulations you have successfully modified' .' '. "" . ucwords(str_replace('_', ' ', $this->router->fetch_class())) .' '. $this->input->post('name') . "");
redirect('admin/users_group');
}
}
public function modify_check_edit() {
if (!in_array('users_group', $this->session->userdata('modify'))) {
$this->form_validation->set_message('modify_check_edit', 'You do not have permission to edit' );
}
}
Форма просмотра:
Select All / Unselect All
Select All / Unselect All
Подробнее здесь: https://stackoverflow.com/questions/289 ... ot-working