Membatasi Tombol Tambah Pada CodeIgniter

selamat malam tmn",

mohon bantuannya : saya mau membatasi tombol "tambah" pada menu pengajuan judul, jadi ketika mahasiswa belum mengupload bukti/bukti ditolak (Menu Verifikasi TA) maka tombol tambah pada menu pengajuan judul akan tidak muncul. sy udah coba pake kondisi if tp masih ada tombol tambahnya, ada yang punya solusi ?

controller pengajuan_judul

 public function pengajuanjudul()
    {
        if ($this->session->userdata('role_id') == 2) {
            $owner_id = $this->User_Model->getid($this->session->userdata('email'));
            $data['title'] = 'Mhs - Pengajuan Judul TA';
            $data['pengajuan_judul'] = $this->Pengajuan_Model->getPengajuan_ownerid($owner_id)->result_array();
            $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
        } else {
            $data['title'] = 'Pengajuan Judul TA';
            $id_dosen = $this->session->userdata('id_dosen'); // <-- Ambil nilai ID Dosen yang
            $data['bimbingan'] = $this->Bimbinganta_Model->getAllBimbinganByIdDosen($id_dosen);
            $data['user'] = $this->db->get_where('user', ['email' => $this->session->userdata('email')])->row_array();
            $data['pengajuan_judul'] = $this->Pengajuan_Model->getAllPengajuan();
        }
        $data['verifikasi_ta'] = $this->db->get_where('verifikasi_ta', ['status'])->row_array();
        $this->load->view('templates/header', $data);
        $this->load->view('templates/sidebar', $data);
        $this->load->view('templates/topbar', $data);
        $this->load->view('akademik/pengajuanjudul', $data);
        $this->load->view('templates/footer');
    }

view pengajuan_judul

!-- Begin Page Content -->
<div class="container-fluid">
    <div class="flash-data" data-flashdata="<?= $this->session->flashdata('flash'); ?>"></div>

    <!-- Page Heading -->
    <h1 class="h3 mb-4 text-gray-800"><?= $title; ?></h1>

    <!-- cek apakah verifikasi diterima -->

    <?php if ($verifikasi_ta['status'] == 'Diterima') : ?>
        <div class="row">
            <div class="col-md-6">
                <a href="<?= base_url('akademik/tambahpengajuan'); ?>" class="btn btn-primary">Tambah</a>
            </div>
        </div><br>
    <?php else : ?>
        <div class="alert alert-primary d-flex align-items-center" role="alert">
            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-exclamation-triangle-fill flex-shrink-0 me-2" viewBox="0 0 16 16" role="img" aria-label="Warning:">
                <path d="M8.982 1.566a1.13 1.13 0 0 0-1.96 0L.165 13.233c-.457.778.091 1.767.98 1.767h13.713c.889 0 1.438-.99.98-1.767L8.982 1.566zM8 5c.535 0 .954.462.9.995l-.35 3.507a.552.552 0 0 1-1.1 0L7.1 5.995A.905.905 0 0 1 8 5zm.002 6a1 1 0 1 1 0 2 1 1 0 0 1 0-2z" />
            </svg>
            <div>
                Selesaikan verifikasi terlebih dahulu !
            </div>
        </div>
    <?php endif; ?>

tombol tambah

menu verifikasidatabase

avatar dewisari
@dewisari

9 Kontribusi 2 Poin

Diperbarui 4 bulan yang lalu

2 Jawaban:

Halo, bisa dicek untuk nilai

$verifikasi_ta['status'] == 'Diterima'

bisa jadi akun yang kamu test memang statusnya "direrima", jadi normal tombolnya muncul

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 4 bulan yang lalu

Berikut solusi yang bisa dicoba:

  1. Pindahkan logika pengecekan verifikasi TA ke dalam model Pengajuan_Model, buat method baru misalnya is_verified()
// Pengajuan_Model

public function is_verified() {
  // cek apakah verifikasi TA diterima
  $status = $this->db->get_where('verifikasi_ta', ['status'])->row_array();
  if($status['status'] == 'Diterima') {
    return true; 
  } else {
   return false;
  }  
}
  1. Pada controller dan view, panggil method ini:
// Controller
$is_verified = $this->Pengajuan_Model->is_verified();

// View
if($is_verified) {
  // tampilkan tombol tambah
} else {
  // tampilkan pesan belum diverifikasi 
}
  1. Ubah logika if di view, jadi cek $is_verified bukan lagi query ke DB

Dengan cara ini kode lebih rapi, logika bisnis ada di model, dan view lebih clean.

avatar adamajalah27
@adamajalah27

119 Kontribusi 40 Poin

Dipost 4 bulan yang lalu

Login untuk ikut Jawaban