Postingan lainnya
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Edit Data CodeIgniter 3
selamat pagi semuanya. saya mau bertanya lagi nih. saya sebelumnya sudah buat sebuah form edit data, dan datanya berhasil diedit sampai ke databasenya. kemudian saya merubah isi form dengan memasukkan "upload" data gambar di dalamnya. saat saya melakukan edit data, datanya tidak mau ter-update di databasenya. bukan hanya gambarnya, tapi seluruh field tidak berubah. mohon bantuannya. terima kasih
cont
function edit()
{
if(isset($_POST['submit']))
{
$config['upload_path'] = './upload/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '1000';
$config['max_width'] = '2000';
$config['max_height'] = '1024';
$this->upload->initialize($config);
if(!$this->upload->do_upload('filecover'))
{
$gambar="";
}
else
{
$gambar=$this->upload->file_name;
}
$kategori_id = $this->input->post('kategori_id');
$penerbit_id = $this->input->post('penerbit_id');
$judul = $this->input->post('judul');
$deskripsi = $this->input->post('deskripsi');
$pengarang = $this->input->post('pengarang');
$tebal_hlm = $this->input->post('tebal_hlm');
$harga = $this->input->post('harga');
$stok = $this->input->post('stok');
$data = array(
'kategori_id' => $kategori_id,
'penerbit_id' => $penerbit_id,
'judul' => $judul,
'deskripsi' => $deskripsi,
'pengarang' => $pengarang,
'tebal_hlm' => $tebal_hlm,
'harga' => $harga,
'stok'=> $stok,
'filecover' => $gambar
);
$this->model_buku->edit($data,$id);
redirect('buku');
}
else
{
$this->load->model('model_kategori');
$this->load->model('model_penerbit');
$data['penerbit'] = $this->model_penerbit->tampil_data()->result();
$data['kategori'] = $this->model_kategori->tampil_data()->result();
$id = $this->uri->segment(3);
$data['record'] = $this->model_buku->get_one($id)->row_array();
$this->template->load('templates/template_a','buku/edit_data', $data);
}
model
function get_one($id)
{
$param = array('buku_id' => $id);
return $this->db->get_where('buku', $param);
}
function edit($data, $id)
{
$this->db->where('buku_id', $id);
$this->db->update('buku', $data);
}
view
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<h3>Tambah Data Buku</h3><hr/>
<body>
<div id="body">
<form action="<?php echo site_url('buku/edit') ?>" method="post" enctype="mulripart/form-data>
<table class="table table-bordered">
<tr>
<td>Kategori</td>
<td><select name="kategori_id" class="form-control">
<?php
foreach ($kategori as $k)
{
echo "<option value='$k->kategori_id'";
echo $record['kategori_id']==$k->kategori_id?'selected':'';
echo ">$k->nama_kategori</option>";
}
?>
</select></td>
</tr>
<tr>
<td>Penerbit</td>
<td><select name="penerbit_id" class="form-control">
<?php
foreach ($penerbit as $p)
{
echo "<option value='$p->penerbit_id'";
echo $record['penerbit_id']==$p->penerbit_id?'selected':'';
echo ">$p->nama</option>";
}
?>
</select></td>
</tr>
<tr>
<td>Judul</td>
<td><input type="text" class="form-control" name="judul" value="<?php echo $record['judul'] ?>"></td>
</tr>
<tr>
<td>Deskripsi</td>
<td><input type="text" class="form-control" name="deskripsi" value="<?php echo $record['deskripsi'] ?>"></td>
</tr>
<tr>
<td>Pengarang</td>
<td><input type="text" class="form-control" name="pengarang" value="<?php echo $record['pengarang'] ?>"></td>
</tr>
<tr>
<td>Halaman</td>
<td><input type="text" class="form-control" name="tebal_hlm" value="<?php echo $record['tebal_hlm'] ?>"></td>
</tr>
<tr>
<td>Harga</td>
<td><input type="text" class="form-control" name="harga" value="<?php echo $record['harga'] ?>"></td>
</tr>
<tr>
<td>Stok</td>
<td><input type="text" class="form-control" name="stok" value="<?php echo $record['stok'] ?>"></td>
</tr>
<tr>
<td>Filecover</td>
<td><input type="file" name="filecover" size="20" /></td>
</tr>
<tr>
<td colspan="2"><button type="submit" class="btn btn-success btn-sm" name="submit">Edit</button>
<?php echo anchor('welcome', 'Kembali', array('class' => 'btn btn-primary btn-sm')) ?></td>
</tr>
</table>
</form>
</div>
</body>
</html>
9 Jawaban:
coba di trace kembali dulu, jika ada kondisi/if diurutkan saat kamu klik submit itu masuknya kemana saja, misal ada if submit itu masuk ke proses edit/tidak ada proses upload itu sukses/tidak lalu ada proses update itu sukses/tidak tiap action kamu harus bisa menentukan action ini sukses/tidak.
lalu ada error atau tidak ? harusnya klo ada sesuatu yg tidak sesuai ada error. kalau tidak ada error berarti berjalan tidak sesuai kondisi (if) yg kita harapkan.
tidak ada pesan error atau apapun mas @sifai. setelah saya tekan tombol edit, langsung redirect ke controller penampil datanya. tapi datanya masih belum berubah
itu saya lihat $id nya belum di definisiin ya diatasnya?
yang
$this->model_buku->edit($data,$id);
mungkin di modelnya jadi gak tau idnya yang mana yang mau di edit
gimana cara definisinya ya mas @demaram? saya belum banyak tau
oh iya, @demaram bener tuh. di form/viewnya kamu kasih hidden it name='id' value ambilkan dari kolom id, terus di controller kamu terima definisikan ke variabel id yg akan dikirim ke model->edit
udah saya tambahin jadi gini mas @sifai, bener atau salah nih? tapi hasilnya masih sama mas, datanya ga berubah.
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<h3>Tambah Data Buku</h3><hr/>
<body>
<div id="body">
<form action="<?php echo site_url('buku/edit') ?>" method="post" enctype="mulripart/form-data>
<table class="table table-bordered">
<tr>
<td><input type="hidden" name="buku_id" value="<?php echo $record['buku_id'] ?>"
<tr>
<tr>
<td>Kategori</td>
<td><select name="kategori_id" class="form-control">
<?php
foreach ($kategori as $k)
{
echo "<option value='$k->kategori_id'";
echo $record['kategori_id']==$k->kategori_id?'selected':'';
echo ">$k->nama_kategori</option>";
}
?>
</select></td>
</tr>
<tr>
<td>Penerbit</td>
<td><select name="penerbit_id" class="form-control">
<?php
foreach ($penerbit as $p)
{
echo "<option value='$p->penerbit_id'";
echo $record['penerbit_id']==$p->penerbit_id?'selected':'';
echo ">$p->nama</option>";
}
?>
</select></td>
</tr>
<tr>
<td>Judul</td>
<td><input type="text" class="form-control" name="judul" value="<?php echo $record['judul'] ?>"></td>
</tr>
<tr>
<td>Deskripsi</td>
<td><input type="text" class="form-control" name="deskripsi" value="<?php echo $record['deskripsi'] ?>"></td>
</tr>
<tr>
<td>Pengarang</td>
<td><input type="text" class="form-control" name="pengarang" value="<?php echo $record['pengarang'] ?>"></td>
</tr>
<tr>
<td>Halaman</td>
<td><input type="text" class="form-control" name="tebal_hlm" value="<?php echo $record['tebal_hlm'] ?>"></td>
</tr>
<tr>
<td>Harga</td>
<td><input type="text" class="form-control" name="harga" value="<?php echo $record['harga'] ?>"></td>
</tr>
<tr>
<td>Stok</td>
<td><input type="text" class="form-control" name="stok" value="<?php echo $record['stok'] ?>"></td>
</tr>
<tr>
<td>Filecover</td>
<td><input type="file" name="filecover" size="20" /></td>
</tr>
<tr>
<td colspan="2"><button type="submit" class="btn btn-success btn-sm" name="submit">Edit</button>
<?php echo anchor('welcome', 'Kembali', array('class' => 'btn btn-primary btn-sm')) ?></td>
</tr>
</table>
</form>
</div>
</body>
</html>
maaf mas @sifai, saya lupa mendefinisikan $id di controllernya. barusan setelah saya definisikan, datanya ter-update mas. terima kasih mas @sifai dan mas @demaram atas masukannya.
Jawaban Terpilih
di viewnya tambahin id dengan hidden
<input type="text" class="form-control" name="buku_id" hidden value="<?php echo $record['buku_id'] ?>"></td>
nah terus di controllernya tinggal di tambahin,
$id = $this->input->post('buku_id');
taro kodenya di harus di atas
$this->model_buku->edit($data,$id);
terima kasih mas @demaram, sekarang datanya sudah bisa di-update.