Codeigniter dasar – Menampilkan dan Menghapus Data

Setelah berhasil memasukkan data ke table, sekarang cara untuk menampilkan data tersebut. Agar lebih simple, saya akan membuat tampilan 1 tampilan saja. Jadi di bawah form input data, akan terdapat table untuk menampilkan data yang telah dimasukkan tadi. Seperti gambar berikut ini :

Lets go igniting the code :D….





Kalo dilihat dari algoritmanya, ketika kita mengakses daily/index, maka yang dilakukan adalah mengambil data dan menampilkannya (secara sederhananya seperti itu.) Sehingga controller daily pada bagian function kita tambahkan menjadi seperti berikut :

<?php

class Daily extends Controller

{

… //kode sebelumnya

function index()

{

$data['query'] = $this->MDaily->getAll();

$this->load->view('daily/input',$data);

}

...//kode sebelumnya

}

1 baris untuk mengakses Model, kemudian baris selanjutnya menampilkan hasilnya ke dalam view.

Jangan lupa, pada model kita buat fungsi getAll untuk mengambil data dari table. Sehingga model Mdaily isinya sebagai berikut :

<?php

class MDaily extends Model

{

… //kode sebelumnya

function getAll()

{

$this->db->order_by('id','ASC');

$query = $this->db->get('daily');

return $query->result();

}

}

Dengan menggunakan Active Record pada codeigniter, perintah SQL digantikan dengan seperti di atas. Bisa juga dengan $this->db->query(“SELECT * FROM daily ORDER BY ‘id’ ASC ”); sama saja, untuk Active Record Codeigniter dapat dibaca pada user_guide Codeiginter. Sangat lengkap di situ.

OK, selanjutnya setelah membuat Controller dan Model, sekarang menuju View. Kita buat view untuk menampilkan datanya. Saya beri nama show.php dan disimpan di views/daily/show.php Isinya sebagai berikut :

<b>Daily Notes</b>

<table border="1">

<tr>

<tr>

<th>No</th>

<th>Date</th>

<th>Name</th>

<th>Amount</th>

<th>Delete</th>

</tr>

</tr>

<?php

$i=0;

foreach ($query as $row){

$i++;

echo "<tr class=\"record\">";

echo    "<td>$i</td>";

echo    "<td>$row->date</td>";

echo    "<td>$row->name</td>";

echo    "<td>$row->amount</td>";

echo    "<td><a href=".base_url()."index.php/daily/delete/$row->id>Delete</a></td>";

echo  "</tr>";

}

?>

</table>

Kenapa tidak full halaman html? Karena halaman ini cukup disisipkan pada input.php, kalo pada php biasa kita pakai include(show.php). Sehingga pada input.php ditambahkan baris berikut :

<!DOCTYPE HTML>

<html lang="en-US">

<head>

<title>Daily Notes</title>

<meta charset="UTF-8">

</head>

<body>

...//kode sebelumnya

<div id="list">

<?php $this->load->view('daily/show') ?>

</div>

</body>

</html>

Oh iya, pada show.php terdapat link untuk menghapus data, karena sudah terlanjur ya buat aja function untuk menghapus data, tambahkan funcion delete pada controller, sehingga controller menjadi seperti berikut :

<?php

class Daily extends Controller

{

...//kode sebelumnya

function delete($id){

$this->db->delete('daily', array('id' => $id));

redirect('daily/index');

}

}

Mudah bukan? Silahkan dicoba untuk memasukkan data dan menghapus data. Semoga berhasil..

Tutorial selanjutnya, kita coba memasukkan data dengan ajax menggunakan jquery ya?? OK!! Mudah ko, menurut saya lho…

Happy Igniting..