Во-первых, Показать все записи из БД и для каждой записи добавить кнопку для редактирования записи.
Примечание: - Не использовать <form>
внутри цикла
<a class="btn btn-warning btn-sm" href="<?= base_url('SuratMasuk/edit_sm/'.$row->id_surat)?>"><i class="fa fa-pencil-square-o" aria-hidden="true"></i>Edit</a>
Контроллер для редактирования
Я просто добавляю код бэкэнда сюда
, где и таблица зарезервированное слово для БД.Лучше не использовать его или использовать по-другому.
public function edit_sm($id_surat){
$condition_array = array('id_surat' => $id_surat);
$data['surat'] = $this->M_sm->edit_sm($condition_array ,'surat');
}
Модель для редактирования
Получить запись для редактирования
Эта функция получает только одну запись из БД, поэтому используйте row()
public function edit_sm($condition_array ,$record_in){
$this->db->join('status_surat', 'status_surat.id_status = surat.id_status');
return $this->db->get_where($record_in, $condition_array )->row();
}
Теперь будет показана форма для с заполненными в ней данными.
Получение обновленных данных из контроллера
public function edit_sm_proses() {
$data = array(
'id_surat'=> $this->input->post('id_surat'),
'no_surat'=>$this->input->post('no_surat'),
'id_status'=>$this->input->post('id_status'),
'id_user'=>$this->input->post('id_user')
);
$condition_array = array(
'id_surat' => $this->input->post('id_surat')
);
$this->M_sm->edit_sm_proses($condition_array, $data, 'surat');
redirect('SuratMasuk');
}
Обновление данных в модели
public function edit_sm_proses($condition_array, $data, $record_in){
$this->db->where($condition_array);
return $this->db->update($record_in, $data);
}