Поэтому у меня есть форма, используемая для двух функций / условий: Save (добавить) и Update Now. Я установил правило для ввода текста: $this->form_validation->set_rules('ID_user', 'User ID', 'required');
Логика такова: если пользователь находится в состоянии «Сохранить», мой входной текст будет включен, потому что он будет вызывать свой идентификатор, но если пользователь находится в состоянии «Обновление», то мой текст ввода будет отключен, и текст будет текущим пользователем id, потому что они не могут изменить свой идентификатор пользователя.
Это функции Save (добавить) и обновления в моем контроллере:
function add(){ //set common properties $data['title'] = 'Tambah User baru'; $data['action'] = site_url('user/add'); $data['link_back'] = anchor('user/index/', 'Back to User list', array('class'=>'back')); $this->_set_rules(); //run validation if($this->form_validation->run() == false){ $data['message'] = ''; //bedakan add/update $data['validate'] = 'add'; //set common properties $data['title'] = 'Add new User'; //$data['message'] = ''; $data['user']['ID_user'] = ''; $data['user']['pass'] = ''; $data['user']['nama'] = ''; $data['user']['email'] = ''; $data['user']['active'] = ''; $data['link_back'] = anchor('user/index/', 'Lihat daftar User', array('class'=>'back')); $this->load->view('user_form_v', $data); } else{ //save data $user = array('ID_user'=>$this->input->post('ID_user'), 'pass'=>sha1($this->input->post('pass')), 'nama'=>$this->input->post('nama'), 'email'=>$this->input->post('email'), 'active'=>$this->input->post('active'), 'regis_date'=>date('Ymd H:i:s')); $ID_user = $this->user_m->save($user); //set form input nama = "id" $this->validation->ID_user = $ID_user; redirect('user/index/add_success'); } } function update($ID_user){ //set common properties $data['title'] = 'Update user'; $this->load->library('form_validation'); //set validation properties $this->_set_rules(); $data['action'] = ('user/update/'.$ID_user); //bedakan add/update $data['validate'] = 'update'; //run validation if ($this->form_validation->run() == false){ $data['message'] = ''; $data['user'] = $this->user_m->get_by_id($ID_user)->row_array(); //set common properties $data['title'] = 'Update User'; $data['message'] = ''; } else{ //save data $ID_user = $this->input->post('ID_user'); $user = array( 'pass'=>$this->input->post('pass'), 'nama'=>$this->input->post('nama'), 'email'=>$this->input->post('email'), 'active'=>$this->input->post('active'), 'regis_date'=>date('Ymd H:i:s')); $this->user_m->update($ID_user, $user); $data['user'] = $this->user_m->get_by_id($ID_user)->row_array(); //set user message $data['message'] = 'Update User Success!'; } $data['link_back'] = anchor('user/index/', 'Lihat daftar user', array('class'=>'back')); //load view $this->load->view('user_form_v', $data); }
И это тип ввода:
<input type="text" name="ID_user" class="text" <?php if($validate!='add'){echo "disabled";} ?> value="<?php echo (isset($user['ID_user']))?$user['ID_user']:""?>"/>
Вопрос заключается в следующем: пока мой пользователь в состоянии «Обновить», и они хотят обновить, отображается сообщение об ошибке, потому что php считает, что идентификатор пользователя является нулевым, факт, что идентификатор пользователя уже существует, все, что я делаю, это просто напечатать идентификатор пользователя в мой тип ввода и его отключить. Это сообщение об ошибке: The User ID field is required.