Senin, 21 September 2015

TUGAS 4  MEMBUAT FORM DENGAN VALIDASI FORM

Ricardus Stefanus Deru
131110676

Sebelumnya kita sudah  menggunakan form_helper, kita juga memerlukan controller dan view.
Pada bagian controller, kita dapat menambahkan $this->load->library('form_validation'); untuk memanggil library form_validation.

kemudain kita dapat mengatur rules variabel-variabel pada form. Contoh penggunaannya adalah: 
$this->form_validation->set_rules('username', 'Username', 'required'); Di mana variabel pertama adalah nama variabel yang akan diberi rule, variabel kedua adalah nama yang akan ditampilkan pada error messages, dan variabel ketiga adalah peraturan-peraturan yang diberikan.

Pada bagian controller kita juga menambahkan $this->form_validation->run(), guna mengecek apakah form sudah diisi dengan benar atau tidak.

Sementara pada bagian view, kita menambahkan echo validation_errors(); untuk menampilkan pesan error apabila terjadi kesalahan pengisian form.

berikut ini adalah contoh cara menampilkan pesan error pada sebuah pengisian form :

sebelumnya kita membuat class register.php dan berikut source code phpnya : 

<style type="text/css">
#eror_div{
    font:normal 10px Tahoma,Verdana;
    display:block;
    width:500px;
    border:red 1px solid;
    padding:5px;
}
#eror_div p{
    margin:0 0 0 0;
    padding:0 0 0 0;
    color:red;
}
#msg_div{
    font:normal 10px Tahoma,Verdana;
    display:block;
    width:500px;
    border:green 1px solid;
    padding:5px;
    color:green;
}
 body  
 {  
 margin:50px;  
 font-family:Arial;  
 background:#eee;  
 }  
 
 #wrap  
 {  
 margin:auto;  
 width:auto;  
 border:5px solid #ccc;  
 padding:5px;  
 background:#fff;  
 box-shadow:4px 4px 10px 2px #888;  
 }  
  #content h1  
 {  
 font-size:35px;  
 font-weight:bold;  
 color:#FF9900;  
 }  
  
</style>
</head>  
  
<body>  
  
<div id="wrap">  
 <div id="content">  
 <h1>Formulir Pendaftaran Mahasiswa Baru</h1>  
<h5><font face = "Lucida Calligraphy" size="3" color="blue"><marquee direction="up" scrollamount="2">Data Calon Mahasiswa</marquee></font></h5>
<hr>

<form method="post" name="frm" action="">
<table>
<tr>  <td>Nama </td>  <td>:</td>  <td><input type="text" name="nama" class="teks" size="40"  /></td>  </tr>
<tr>  <td>Jenis Kelamin</td>  <td>:</td>  <td><input type="radio" name="jk"    />Pria 
                                              <input type="radio" name="jk"   />Wanita</td> 
 <td>Anak Ke<td>:</td><td><input type="text"  name="ak" class="teks" size="1"  />
Jumlah sdr kandung: <input type="text"  name="jmlsaudara" class="teks" size="1"  />
</td></tr>
<tr>  <td>Tempat Lahir </td>  <td>:</td>  <td><select name="tl">
<option value="pilihan">-pilihan-</option>
<option value="dj">Dki Jakarta</option>
<option value="jb">Jawa Barat</option>
<option value="jt">Jawa Timur</option>
<option value="d">D I Yogyakarta</option>
<option value="nac">Nangro Aceh Darusalam</option>
<option value="su">Sumatra Utara</option>
<option value="sb">Sumatra Barat</option>
<option value="r">Riau</option>
<option value="j">Jambi</option>
<option value="ss">Sumatra Selatan</option>
</select>
</td>  <td>Propinsi</td>  <td>:</td> <td><select name="prop">
<option value="pilihan">-pilihan-</option>
<option value="dj">Dki Jakarta</option>
<option value="jb">Jawa Barat</option>
<option value="jt">Jawa Timur</option>
<option value="d">D I Yogyakarta</option>
<option value="nac">Nangro Aceh Darusalam</option>
<option value="su">Sumatra Utara</option>
<option value="sb">Sumatra Barat</option>
<option value="r">Riau</option>
<option value="j">Jambi</option>
<option value="ss">Sumatra Selatan</option>
</select>
 </td></tr>
<tr>  <td>Tanggal Lahir</td>  <td>:</td> <td><select name="tanggal">
<option value="Tanggal">-Tanggal-</option>
<option value="tanggal1">1</option>
<option value="tanggal2">2</option>
<option value="tanggal3">3</option>
<option value="tanggal4">4</option>
<option value="tanggal5">5</option>
<option value="tanggal6">6</option>
<option value="tanggal7">7</option>
<option value="tanggal8">8</option>
<option value="tanggal9">9</option>
<option value="tanggal10">10</option>
</select>
 - <select name="bulan">
<option value="Bulan">-Bulan-</option>
<option value="bulan1">Januari</option>
<option value="bulan2">Febuari</option>
<option value="bulan3">Maret</option>
<option value="bulan4">April</option>
<option value="bulan5">Mai</option>
<option value="bulan6">Juni</option>
<option value="bulan7">Juli</option>
<option value="bulan8">Agustus</option>
<option value="bulan9">September</option>
<option value="bulan10">Oktober</option>
</select>
 - <select name="tahun">
<option value="Tahun">-Tahun-</option>
<option value="tahun1">1990</option>
<option value="tahun2">1991</option>
<option value="tahun3">1992</option>
<option value="tahun4">1993</option>
<option value="tahun5">1994</option>
<option value="tahun6">1995</option>
<option value="tahun7">1996</option>
<option value="tahun8">1997</option>
<option value="tahun9">1998</option>
<option value="tahun10">1999</option>
</select>
 </td>  </tr>
<tr>  <td>Warga Negara</td>  <td>:</td>  
<td><input type="radio" name="wn"  />WNI 
    <input type="radio" name="wn" /> WNA </td>
 
 <td>Agama</td>  <td>:</td> <td><select name="ag">
<option value="pilihan">-pilihan-</option>
<option value="islam">Islam</option>
<option value="kristen">Kristen</option>
<option value="katolik">Katolik</option>
<option value="hindu">Hindu</option>
<option value="budha">Budha</option>
<option value="konghucu">Konghucu</option>
<option value="lainnya">Lainnya</option>
</select>
 </td> </tr>
<tr>  <td>Nama SMA/sederajat</td>  <td>:</td>  <td><input type="text" name="namasma"  class="teks" size="40"  />
</td>  </tr>
<tr>  <td>Alamat SMA</td>  <td>:</td>  <td><textarea name="alamatsma" cols="36" rows="3" id="alamat" class="teksarea" ></textarea>
</td>  </tr>
<tr>  <td>Propinsi SMA</td>  <td>:</td> <td><select name="propsma">
<option value="pilihan">-pilihan-</option>
<option value="dj">Dki Jakarta</option>
<option value="jb">Jawa Barat</option>
<option value="jt">Jawa Timur</option>
<option value="d">D I Yogyakarta</option>
<option value="nac">Nangro Aceh Darusalam</option>
<option value="su">Sumatra Utara</option>
<option value="sb">Sumatra Barat</option>
<option value="r">Riau</option>
<option value="j">Jambi</option>
<option value="ss">Sumatra Selatan</option>
</select>
 </td></tr>
<tr>  <td>Jurusan</td>  <td>:</td>  <td><select name="jrus">
<option value="pilihan">-pilihan-</option>
<option value="TIK">tehnik informatika dan komputer</option>
<option value="DKV">desain komunikasi visual</option>
<option value="SI">sistem informasi</option>
<option value="DGM">desain grafis dan multimedia</option>
<option value="TKJ">tehnik komputer dan jaringan</option>
<option value="DMW">digital marketing dan web</option>
</select>
</td><td>Total Nilai UAN<td>:</td><td><input type="text" name="tnu" class="teks" size="1"  />
  </tr>   
<tr>  <td>No Telpon/HP</td>  <td>:</td>  <td><input type="text" name="tlpn" class="teks" size="20"  />
</td>  </tr> 
<tr>  <td></td>  <td></td>  <td><input type="submit" name="btnKirim" value="Simpan" id="btnKirim" class="tombol"  />
</td>  </tr>     
 
</table>
 
</form>  
</div>  
</div>  
<div id="footer">    
</div>  
</body>
<br></br>
<?php 
if($eror){
    echo '<div id="eror_div">';
    echo validation_errors();
    echo '</div>';
}
 
if($register){
    echo '<div id="msg_div">'.$register.'</div>';
}
?>

class register.php  kita simpan pada file views.
selanjutnya kita membuat class home.php dan disimpan pada folder controller untuk memanggil file register.php dan berikut adalah source codenya :

home.php :
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
  
class Home extends CI_Controller {
    public function index()
    {
        echo 'Selamat datang di CodeIgniter';
    } 
    function register()
    {
        $data['eror']=false;
        $data['register']=false;
        //cek apakah ada tombol btnKirim
        if($this->input->post('btnKirim')){
            $paket = $this->input->post();
            //memanggil library form vallidation
            $this->load->library('form_validation');
            //buat aturan terhadap form input
            $config = array(
                           array(
                                 'field'   => 'nama', //nama elemen form
                                 'label'   => 'nama', //keterangan form
                                 'rules'   => 'required' //harus di isi,minimal 12 angka,integer
                              ),
                           array(
                                 'field'   => 'jk',
                                 'label'   => 'Jenis Kelamin',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'ak',
                                 'label'   => 'Anak Ke',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'jmlsaudara',
                                 'label'   => 'Jumlah Sdr. Kandung',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'tl',
                                 'label'   => 'Tempat Lahir',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'tanggal',
                                 'label'   => 'Tanggal Lahir',
                                 'rules'   => 'required'
                              ),
  array(
                                 'field'   => 'bulan',
                                 'label'   => 'Bulan',
                                 'rules'   => 'required'
                              ),
  array(
                                 'field'   => 'tahun',
                                 'label'   => 'Tahun',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'prop',
                                 'label'   => 'Propinsi',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'wn',
                                 'label'   => 'Warga Negara',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'ag',
                                 'label'   => 'Agama',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'namasma',
                                 'label'   => 'Nama SMA/sederajat',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'alamatsma',
                                 'label'   => 'Alamat SMA',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'propsma',
                                 'label'   => 'Propinsi SMA',
                                 'rules'   => 'required'
                              ),
   array(
                                 'field'   => 'jrus',
                                 'label'   => 'Jurusan',
                                 'rules'   => 'required'
                              ),
                           array(
                                 'field'   => 'tnu',
                                 'label'   => 'Total Nilai UAN',
                                 'rules'   => 'required'
                              ),   
                           
   array(
                                 'field'   => 'tlpn', //nama elemen form
                                 'label'   => 'No Telpon/HP', //keterangan form
                                 'rules'   => 'required|min_length[12]|integer' //harus di isi,minimal 12 angka,integer
                              ),
  
  
                        );
            //cek jika form validationnya tidak menemukan kesalahan
            $this->form_validation->set_rules($config); 
            if($this->form_validation->run()!==false){
                $this->load->model('webmodel');
                $data['register']=$this->webmodel->proses_register($paket);
            }
            else{
                $data['eror']=true;
            }
        }
        $this->load->view('register',$data);
    }    
}
?>

kemudian kita sebuha file dengan webmodel.php  untuk menampilkan data.
berikut adalah source code dari webmodel.php :

<?php
class Webmodel extends CI_Model {
    function __construct()
    {
      parent::__construct();
    }
     
    function test()
    {
        return 'Data untuk test model';
    }
     
    function proses_register($arr)
    {
        $nama               = $arr['nama'];
        $jeniskelamin       = $arr['jk'];
        $anakke = $arr['ak'];
$jumlahsdr = $arr['jmlsaudara'];
        $TempatLahir  = $arr['tl'];
$Propinsi           = $arr['prop'];
$TanggalLahir     = $arr['tanggal'];
$BulanLahir  = $arr['bulan'];
        $TahunLahir  = $arr['tahun'];
$Warganegara        = $arr['wn'];
$Agama              = $arr['ag'];
$NamaSMA            = $arr['namasma'];
        $AlamatSMA          = $arr['alamatsma'];
        $propinsisma        = $arr['propsma'];
$jurusan            = $arr['jrus'];
$total_nilai_uan    = $arr['tnu'];
$No_telpon          = $arr['tlpn'];
        
 $data    ='nama : '.$nama.'<br/>'.
                   'jenis kelamin: '.$jeniskelamin.'<br/>'.
                   'Anak ke : '.$anakke.'<br/>'.
   'jumlah saudara: '.$jumlahsdr.'<br/>'.
   'Tempat Lahir : '.$TempatLahir.'<br/>'.
                   'Tanggal Lahir : '.$TanggalLahir.'<br/>'.
   'Propinsi : '.$Propinsi.'<br/>'.
   'Warga negara : '.$Warganegara.'<br/>'.
   'Agama : '.$Agama.'<br/>'.
   'Nama SMA : '.$NamaSMA.'<br/>'.
   'Alamat SMA : '.$AlamatSMA.'<br/>'.
   'Propinsi SMA : '.$propinsisma.'<br/>'.
   'Jurusan : '.$jurusan.'<br/>'.
   'Total Nilai UAN : '.$total_nilai_uan.'<br>'.
   'No Telpon  : '.$No_telpon;
        return $data;
    }
}
?>

cara menampilkan hasilnya adalah dengan cara mengetik :  http://localhost/franco/index.php/home/register. 
berikut tampilan output jika semua data pada form  diisi :


tampilan pesan error




Tidak ada komentar:

Posting Komentar