Postingan lainnya
Data Gagal diupdate padahal tidak ada error sama sekali
mau nanya nih mastah, ini masalahnya dimana yah? Sayakan buat crud untuk update semuanya berjalan lancar dan kode pun tidak ada yang error sama sekali, tapi pas button update diclick terus redirect ke page data, datanya malah tidak ada perubahan sama sekali.
ini script untuk controllernya
public function edit($id = null){
$where = array('id_user' => $id);
$data['user'] = $this->log_model->edit_data($where,'user')->result();
$this->load->view('edit',$data);
}
function update(){
$id = $this->input->post('user_id');
$username = $this->input->post('username');
$password = $this->input->post('password');
$level = $this->input->post('level');
$data = array(
'username' => $username,
'password' => md5($password),
'level' => $level
);
$where = array('id_user' => $id);
$query = $this->log_model->update_data($where,$data,'user');
if ($query) {
print "<script type=\"text/javascript\">alert('Data berhasil Diupdate');</script>";
redirect('welcome/edit/index','refresh');
}
else{
print "<script type=\"text/javascript\">alert('Data Gagal Diupdate');</script>";
redirect('index.php/welcome/index','refresh');
}
}
ini script untuk modelnya..
function edit_data($where,$table){
return $this->db->get_where($table,$where);
}
function update_data($where,$data,$table){
$this->db->where($where);
$this->db->update($table,$data);
}
dan ini script untuk viewnya,,,,
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Data CRUD</title>
<link rel="stylesheet" href="">
</head>
<body>
<?php echo $this->session->flashdata('info'); ?>
<br>
<?php foreach($user as $d){ ?>
<form action="<?php echo base_url(). 'index.php/welcome/update/'; ?>" method="post" accept-charset="utf-8">
<input type="text" name="user_id" value="<?php echo $d->id_user;?>" disabled>
<label for="name">Username
<input type="text" name="username" value="<?php echo $d->username; ?>">
</label>
<label for="name">Password
<input type="text" name="password" value="<?php echo $d->password; ?>">
</label>
<label for="name">Level
<input type="text" name="level" value="<?php echo $d->level; ?>">
</label>
<input type="submit" name="submit" value="Update">
</form>
<?php } ?>
</body>
</html>
<?php print_r($user)?>
1 Jawaban:
Itu yang benar user_id atau id_user? Takutnya terjadi kebingungan disini, meskipun maksudnya di file viewnya dibuat disabled.
Kemudian, untuk apa ada variabel $id untuk post, namun di data arraynya untuk update tidak ada variabel tersebut untuk dilakukan perubahan? Apakah data id tersebut akan dilakukan perubahan atau tidak?
Lagipula, variabel $id untuk $where tampaknya menyambung ke variabel $id untuk post di awal function update. Jadi id disini kebingungan, apakah ia akan melakukan perubahan atau menjadi patokan buat perubahan data.
Sebagai saran saja, untuk querynya biar lebih rapi dimasukkan ke model, jadi kodenya bisa digunakan beberapa kali asalkan masih dalam satu tabel yang sama dan masih mengandung kolom id. Sehingga untuk controller hanya untuk fungsi input data dari view menuju ke database.
Selain itu, daripada disabled untuk id di file viewnya, lebih baik di hidden untuk mengurangi kebingungan. Jadi hanya input yang memang untuk diubah saja yang nampak di viewnya. Meskipun sudah didisabled, namun adanya input id tersebut akan membuat orang bingung dalam membaca/mengedit jika ia tak paham.