Postingan lainnya
Ketika saya klik edit di bagian kolom A, yang terupdate malah Kolom B
Assalaamu'alaikum Wr.Wb. Izin bertanya, saya mengalami keanehan disini. Ketika saya edit kolom A, yang teredit malah kolom B. Padahal ketika saya cek URL nya, idnya benar, semisal A idnya 30 nah di URL tersebut padahal benar ID nya 30. Namun ketika di edit, data yang terpanggil di dalam form edit, malah data yang ada di kolom B. Mohon bantuannya para suhu, saya berharap kalian mengerti dan mohon maaf bila kalimatnya membingungkan😂. Terima kasih Wassalaamu'alaikum Wr.Wb.
Ini kode Modeldata
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Modeldata extends CI_Model
{
private $t_kelas = "t_kelas";
public $nama_kelas;
public $kompetensi_keahlian;
public function rulesKelas()
{
return [
['field' => 'nama_kelas',
'label' => 'Nama_kelas',
'rules' => 'required'],
['field' => 'kompetensi_keahlian',
'label' => 'Kompetensi_keahlian',
'rules' => 'required']
];
}
public function getAllKelas()
{
return $this->db->get($this->t_kelas)->result();
}
public function getKelasById($id)
{
return $this->db->get($this->t_kelas, ["id_kelas" => $id])->row();
}
public function insertKelas()
{
$post = $this->input->post();
$this->nama_kelas = $post["nama_kelas"];
$this->kompetensi_keahlian = $post["kompetensi_keahlian"];
return $this->db->insert($this->t_kelas, $this);
}
public function updateKelas()
{
$post = $this->input->post();
$this->id_kelas = $post['id'];
$this->nama_kelas = $post["nama_kelas"];
$this->kompetensi_keahlian = $post["kompetensi_keahlian"];
return $this->db->update($this->t_kelas, $this, array("id_kelas" => $post['id']));
}
}
Ini kode Controller Admin nya
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Admin extends CI_Controller
{
public function __construct()
{
parent::__construct();
$this->load->model('Modeldata');
$this->load->library('form_validation');
}
public function index()
{
$this->load->view('login');
}
public function Masuk()
{
$username = $this->input->post('username', TRUE);
$password = $this->input->post('password', TRUE);
$level = $this->input->post('level', TRUE);
$this->db->where('username', $username);
$this->db->where('password', $password);
$this->db->where('level', $level);
$ditemukan = $this->db->get('t_petugas')->row_array();
if ($ditemukan > 0)
{
redirect ('Admin/Beranda');
}else{
echo "Maaf akunnya gak ada";
}
}
public function Beranda()
{
$this->template->load('halaman_master', 'template/_includes/dashboard');
}
public function dataKelas()
{
$data["tampilkankelas"] = $this->Modeldata->getAllKelas();
$this->template->load('halaman_master', 'template/_includes/data_kelas', $data);
}
public function tambahKelas()
{
$kelas = $this->Modeldata;
$validation = $this->form_validation;
$validation->set_rules($kelas->rulesKelas());
if ($validation->run())
{
$kelas->insertKelas();
$this->session->set_flashdata('success', 'Data Berhasil ditambahkan');
}
redirect ('Admin/dataKelas');
}
public function editKelas($id = null)
{
if (!isset($id)) redirect ('Admin/dataKelas');
$kelas = $this->Modeldata;
$validation = $this->form_validation;
$validation->set_rules($kelas->rulesKelas());
if ($validation->run())
{
$kelas->updateKelas();
$this->session->set_flashdata('success', 'Data berhasil diubah');
}
$data["kelas"] = $kelas->getKelasById($id);
if (!$data["kelas"]) show_404();
$this->template->load('halaman_master', 'template/_includes/edit_kelas', $data);
}
}
Ini Kode view data_kelas
<?php if ($this->session->flashdata('success')): ?>
<div class="alert alert-success" role="alert">
<?php echo $this->session->flashdata('success'); ?>
</div>
<?php endif; ?>
<div class="card mb-4">
<div class="card-header">
<b class="text-primary">Form Data Kelas</b>
</div>
<div class="card-body">
<form action="<?php echo site_url('Admin/tambahKelas')?>" method="POST">
<div class="form-group">
<div class="form-label-group">
<input type="text" class="form-control" id="inputKelas" placeholder="Masukkan Nama Kelas" required="required" name="nama_kelas">
<label for="inputKelas">Nama Kelas</label>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="text" id="inputJurusan" class="form-control" placeholder="Masukkan Bidang Kompetensi Keahlian" required="required" name="kompetensi_keahlian">
<label for="inputJurusan">Kompetensi Keahlian</label>
</div>
</div>
<div class="form-group">
<input type="submit" class="btn btn-small btn-success" name="btn" value="Simpan">
</div>
</form>
</div>
</div>
<div class="card mb-4">
<div class="card-header">
<b class="text-primary">Data Kelas</b>
</div>
<div class="card-body">
<div class="table-responsive">
<table id="dataTable" class="table table-hover table-striped table-bordered" width="100%" cellspacing="0">
<thead>
<tr>
<th>ID Kelas</th>
<th>Nama Kelas</th>
<th>Kompetensi Keahlian</th>
<th>Aksi</th>
</tr>
</thead>
<tbody>
<?php foreach ($tampilkankelas as $kelas) : ?>
<tr>
<td><?php echo $kelas->id_kelas?></td>
<td><?php echo $kelas->nama_kelas?></td>
<td><?php echo $kelas->kompetensi_keahlian?></td>
<td>
<a href="<?php echo site_url('Admin/editKelas/' . $kelas->id_kelas)?>" class="btn btn-small text-primary"><i class="fas fa-edit"></i> Edit</a>
</td>
</tr>
<?php endforeach ;?>
</tbody>
</table>
</div>
</div>
</div>
Ini Kode view edit_kelas
<?php if ($this->session->flashdata('success')): ?>
<div class="alert alert-success" role="alert">
<?php echo $this->session->flashdata('success'); ?>
</div>
<?php endif; ?>
<div class="card mb-3">
<div class="card-header">
<b class="text-primary">Form Edit Kelas</b>
</div>
<div class="card-body">
<form action="" method="POST">
<input type="hidden" name="id" value="<?php echo $kelas->id_kelas?>">
<div class="form-group">
<div class="form-label-group">
<input type="text" name="nama_kelas" class="form-control" required="required" value="<?php echo $kelas->nama_kelas?>">
<label for="inputdataKelas">Nama Kelas</label>
</div>
</div>
<div class="form-group">
<div class="form-label-group">
<input type="text" name="kompetensi_keahlian" class="form-control" required="required" value="<?php echo $kelas->kompetensi_keahlian?>">
<label for="inputdataJurusan">Kompetensi Keahlian</label>
</div>
</div>
<div class="form-group">
<input type="submit" class="btn btn-small btn-primary" value="Ubah">
</div>
</form>
</div>
</div>
Ini screenshot nya
Itu saya mengklik edit di kolom yg ber ID 30
Namun data yang terpanggil justru data yang ada di kolom yang ber ID 31, padahal di URL nya ID nya 30
2 Jawaban:
Jawaban Terpilih
<div>Sepertinya masalahnya ada di method getKelasById nya, <br>coba method getKelasById pada modelnya diubah jadi sperti ini :<br><br></div><pre>public function getKelasById($id) { return $this->db->get_where($this->t_kelas, ["id_kelas" => $id])->row(); }</pre><div><br>Perhatikan, bahwa metode get pada class Query Builder CI akan mengambil seluruh/semua data yang ada pada tabel, meskipun kita ngasih kriteria/ketentuan, dia akan mengabaikan ketentuan (where) tersebut.<br>Untuk mengambil seluruh data dengan kritertia tertentu (menggunakan where), maka gunakan method /function get_where.<br><br>Silahkan pelajari via dokuemntasi resminya di sini <a href="https://codeigniter.com/userguide3/database/query_builder.html#selecting-data">https://codeigniter.com/userguide3/database/query_builder.html#selecting-data</a><br><br>Semoga terbantu.</div>
<div>Alhamdulillah, problem solved😂. Terima kasih Suhu atas ilmunya juga.🙏 </div>