Jumat, 18 November 2016

Membuat Form Validasi dengan Codeigniter


Assalamu alaikum wr. wb.
Kali saya akan membuat form validasi dengan Codeigniter. Tutorial ini merupakan tutorial lanjutan dari tutorial sebelumnya yaitu Tutorial Membuat Aplikasi CRUD dengan Codeigniter + Bootstrap. Jadi saya tidak perlu membuat dari awal. Silahkan dibaca tutorial sebelumnya. Langsung saja ke TKP.
  1. Edit Controller Buku.php di folder latihan/application/controllers.
       
     <?php
    defined('BASEPATH') OR exit('No direct script access allowed');
    
    class Buku extends CI_Controller{
     
     private $alert = '';
     
     public function __construct(){
      parent::__construct();
      $this->load->helper('url');
      $this->load->model('bukuModel');
     }
     
     public function index(){
      $data['semua'] = $this->bukuModel->all();
      $this->template('list',$data);
     }
     
     private function template($content,$data=null){
      $data['content'] = $this->load->view($content,$data,true);
      $this->load->view('template',$data);
     }
     private function alert($open_tag=null,$close_tag=null,$data=null){
      if($data!=null) $data = $open_tag.$data.$close_tag;
      return $data;
     }
     public function form(){
      //load library form_validation
      $this->load->library('form_validation');
      //set rules input POST
      //$this->form_validation->set_rules('INPUT NAME','HUMAN NAME','ATTRIBUT','ERROR MESSAGE');
      $this->form_validation->set_rules('judul','Judul Buku','required|max_length[50]',
      array('required'=>'%s tidak boleh kosong','max_length'=>'%s tidak boleh melebihi 50 digit'));
      $this->form_validation->set_rules('pengarang','Nama Pengarang','required|max_length[50]',
      array('required'=>'%s tidak boleh kosong','max_length'=>'%s tidak boleh melebihi 50 digit'));
      $this->form_validation->set_rules('stok','Stok Buku','required|max_length[10]|integer',
      array('required'=>'%s tidak boleh kosong','max_length'=>'%s tidak boleh melebihi 10 digit','integer'=>
      '%s harus bilangan bulat'));
      //menjalankan form_validation
      if($this->form_validation->run()){
       //jika berhasil ( OUTPUT == TRUE), maka akan melakukan proses
       $array = array(
         'judul'=>$this->input->post('judul'),
         'pengarang'=>$this->input->post('pengarang'),
         'stok'=>$this->input->post('stok'),
       );
       if($this->input->post('id')==''){
        if($this->bukuModel->insert($array)){
         $this->alert = $this->alert("<p class='alert alert-success'>","</p>","Sukses Menyimpan"); 
        }else{
         $this->alert = $this->alert("<p class='alert alert-danger'>","</p>","Gagal Menyimpan");
        }
       }else{
        if($this->bukuModel->update($array,array('id'=>$this->input->post('id')))){
         $this->alert = $this->alert("<p class='alert alert-success'>","</p>","Sukses Menyimpan"); 
        }else{
         $this->alert = $this->alert("<p class='alert alert-danger'>","</p>","Gagal Menyimpan");     
        }
       }
      }
      $data['satu'] = $this->bukuModel->getWhere(array('id'=>$this->uri->segment(3)))->row_array();
      $data['alert'] = $this->alert;
      $this->template('form',$data);
     }
     public function hapus(){
      if($this->uri->segment(3)) $this->bukuModel->delete(array('id'=>$this->uri->segment(3)));
      redirect('buku');
     }
     
    }
    
    ?>
     
  2. Edit view form.php di folder latihan/application/views.
       
    <div class="row">
     <div class="col-md-12">
      <h1 align="center">Form Buku</h1>
     </div>
    </div>
    <div class="row">
     <div class="col-md-12">
      <div class="panel panel-default">
       <div class="panel-heading">
        <label>Form Buku</label>
       </div>
       <div class="panel-body">
       <?php 
       echo validation_errors("<div class='alert alert-danger'>","</div>");//menampilkan error dari form_validation
       echo $alert;?>
        <form method="post" class="form-horizontal">
         <div class="form-group">
          <label class="control-label col-md-2">Judul</label>
          <div class="col-md-10">
           <input type="text" name="judul" class="form-control" value="<?php echo $satu['judul'];?>">
          </div>
         </div>
         <div class="form-group">
          <label class="control-label col-md-2">Pengarang</label>
          <div class="col-md-10">
           <input type="text" name="pengarang" class="form-control" value="<?php echo $satu['pengarang'];?>">
          </div>
         </div>
         <div class="form-group">
          <label class="control-label col-md-2">Stok</label>
          <div class="col-md-10">
           <input type="text" name="stok" value="<?php echo $satu['stok'];?>" class="form-control">
          </div>
         </div>
         <div class="form-group">
          <div class="col-md-2">
           <input type="hidden" name="id" value="<?php echo $satu['id'];?>">
          </div>
          <div class="col-md-10">
           <input type="submit" name="simpan" class="btn btn-primary" value="Simpan">
           <a href="<?php echo site_url();?>" class="btn btn-danger">Kembali</a>
          </div>
         </div>
        </form>
       </div>
      </div>
     </div>
    </div>
     
  3. Selesai. Silahkan dijalankan di localhost anda. Catatan : Form Validasi ini untuk memfilter input form sesuai aturan yang kita set di set_rules. Untuk aturan-aturan lainnya bisa dibaca di dokumentasi Codeigniter nya http://www.codeigniter.com/user_guide/libraries/form_validation.html.
Sekian tutorial kali in. Semoga tutorial ini bermanfaat bagi anda. Jika ada kesalahan dan kekeliruan dalam kata saya mohon maaf. Tutorial ini akan bersambung ke tutorial berikutnya yakni Tutorial Upload File dengan Codeigniter. Anda juga dapat download tutorial ini disini. Tetap berkunjung ke blog ini ya... Terima kasih.

0 komentar:

Posting Komentar