Dijamin no repost, ane yg buat
Spoiler for kutip:
Untuk kali ini, Cheyuz akan membuat tutorial Codeigniter untuk membuat Multiple Input Form. Apa itu Multiple Input Form? Multiple Input Form adalah suatu bentuk form di mana kita akan menginputkan banyak data ke dalam database melalui form secara sekaligus. Jadi kita tidak menginputkan data satu persatu.
Spoiler for prikitiw:
Jika kita memakai cara yang di atas, maka kita harus menginputkan mahasiswa satu persatu. Bayangkan gimana kalo kita ingin menginputkan 50 data? Tentu kita harus mengisi form sebanyak 50 kali bukan?
Coba lihat form berikut ini:
Spoiler for prikitiw:
Coba Anda lihat, apa bedanya cara pertama dengan cara kedua? keliatan kan? Nah, jadi bedanya apabila kita memakai cara kedua, kita dapat menginput beberapa siswa sekaligus.
Di sini kita akan membuat 3 bagian modul, yaitu:
- Form untuk mengisi berapa data yang akan dimasukkan
- Form untuk pengisian form multiple
- Daftar data yang telah dimasukkan
Catatan:
Diasumsikan base_url() untuk tutorial ini adalah http://localhost/webku
dan index.php telah dihilangkan..
tutorial untuk menghilangkan index.php ada di sini
Pertama2 buat dulu database sebagai berikut:
Code:
CREATE TABLE IF NOT EXISTS mahasiswa ( id int(5) NOT NULL AUTO_INCREMENT, `nim` varchar(20) NOT NULL, `nama` varchar(100) NOT NULL, `alamat` text NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
konfigurasi untuk koneksi database ada di /system/application/config/database.php.
Buatlah sebuah controller data_mahasiswa.php (atau Anda bisa melanjutkan tutorial dari Tutorial Dasar Part I untuk membuat controller data_mahasiswa.php dan melanjutkannya).
Di controller tersebut, tambahkan function untuk membuat tampilan multiple input form:
PHP Code:
<?php
class Data_mahasiswa extends Controller {
...
function add_multiple() {
$this->load->view('add_multiple');
}
}
?>
Isikan code HTML berikut di file tersebut:
HTML Code:
<h2>Multiple Form Input Mahasiswa</h2> <form action="" method="post"> Banyak mahasiswa yang ingin dimasukkan: <input name="banyak_data" size="3" /> orang<br /> <input type="submit" value="Lanjut" /> </form>
Spoiler for prikitiw:
Kemudian tambahkan code berikut untuk function add_multiple() file controller data_mahasiswa.php tadi, menjadi seperti berikut:
PHP Code:
<?php
class Data_mahasiswa extends Controller {
...
//ADD MULTIPLE
function add_multiple() {
if($_POST==NULL) {
$this->load->view('add_multiple');
}else{
redirect('data_mahasiswa/add_multiple_post/'.$_POST['banyak_data']);
}
}
}
?>
Tambahkan function berikut di bawah function add_multiple():
PHP Code:
class Data_mahasiswa extends Controller {
...
function add_multiple_post($banyak_data=0) {
$data['banyak_data'] = $banyak_data;
$this->load->view('add_multiple_form',$data);
}
}
Berikut ini adalah kode HTML dari add_multiple_form.php, simpan di /system/application/views:
HTML Code:
<h2>Multiple Form Input Mahasiswa</h2> <form action="" method="post"> <table> <tr> <td>NIM</td> <td>Nama</td> <td>Alamat</td> </tr> <?php for($i=1;$i<=$banyak_data;$i++): ?> <tr> <td><input name="data[<?php echo $i ?>][nim]" /></td> <td><input name="data[<?php echo $i ?>][nama]" /></td> <td><input name="data[<?php echo $i ?>][alamat]" /></td> </tr> <?php endfor ?> </table> <input type="submit" value="simpan" /> </form>
Spoiler for prikitiw:
Kemudian, tambahkan ‘if’ dan ‘foreach’ di function add_multiple_post tadi, fungsinya adalah untuk mengetahui apakah form udah disubmit atau belum… jadi kode PHP lengkapnya sbb:
PHP Code:
<?php
class Data_mahasiswa extends Controller {
...
function add_multiple_post($banyak_data=0) {
if($_POST==NULL) {
$data['banyak_data'] = $banyak_data;
$this->load->view('add_multiple_form',$data);
}else {
foreach($_POST['data'] as $d){
$this->db->insert('mahasiswa',$d);
}
redirect('data_mahasiswa/lihat_data');
}
}
}
?>
untuk function add_multiple_post():
- Data dicek dulu apakah sudah disubmit ato belum ($_POST==NULL), kalo belum, load view add_multiple_form.php dengan variable $banyak_data yang diambil dari parameter berdasarkan data yg dimasukkan sebelumnya (di function add_multiple(), yaitu $_POST['banyak_data'])
- Kalo datanya udah disubmit, maka lakukan insert data yang berulang sebanyak elemen dari $_POST['data'] (berdasarkan $banyak_data) ke dalam table ‘mahasiswa’ dengan data dari $_POST['data'] (input-an dari multiple form)
- Kemudian redirect/alihkan ke function lihat_data untuk menampilkan seluruh data mahasiswa yang akan kita buat setelah ini.
Nah, sekarang kita tinggal bikin daftar data ‘mahasiswa’ yang sudah dimasukkan.. Caranya, buat file list_mahasiswa.php di /system/application/views/ dengan isi sebagai berikut:
list_mahasiswa.php:
HTML Code:
<h2>Daftar Mahasiswa</h2> <table> <tr> <th>No</th> <th>NIM</th> <th>Nama</th> <th>Alamat</th> </tr> <?php $i = 0 ?> <?php foreach($mahasiswa as $m): ?> <tr> <td><?php echo $i++ ?></td> <td><?php echo $m->nim ?></td> <td><?php echo $m->nama ?></td> <td><?php echo $m->alamat ?></td> </tr> <?php endforeach ?> </table> <?php echo anchor('data_mahasiswa/add_multiple','Tambah Data') ?>
PHP Code:
<?php
class Data_mahasiswa extends Controller {
...
function lihat_data(){
$data['mahasiswa'] = $this->db->get('mahasiswa')->result();
$this->load->view('list_mahasiswa',$data);
}
}
?>