Panada Framework : Validasi bentuk inputan tertentu


SamidCorner(Tegal) – Pembaca yang budiman. Sebenarnya ini adalah sebuah posting yang menjadi jawaban dari pertanyaan yang diajukan kepada saya oleh salah seorang member group dari Panada Framework di Facebook. Jadi, ceritanya bagaimana kita memfilter / melakukan validasi untuk sebuah inputan yang bentuknya misal : TKJ001. Nah, semoga postingan ini dapat menjawab ke-galau-an dari pe-nanya :D. Semangat menyimak.

Memahami konsepnya

Oke, dari pertanyaan di atas tersebut kita akan melakukan analisa dan membuat konsep untuk melakukan validasi pada inputan tersebut. Begini :

  1. Kita tentukan bentuk / patern konstan dari inputan yang akan kita proses. Misal : TKJ001 berarti panjang karakter adalah 6 (enam). Betul?
  2. Selanjutnya kalo sudah maka dipecah dulu, 3 karakter pertama bentuknya adalah (misal) TKJ dan 3 bentuk terakhir bentuknya harus ada angka 00. Betul?
  3. Selanjutnya membuat logic untuk melakukan validasi. Betul?

Lalu bagaimana mempraktekkan di PanadaFramework? sebetulnya kita dapat menggunakan method Callback yang sudah ada di PanadaFramework. Oke? kita langsung ke prakteknya. 🙂

Membuat Validasi

Buat file baru, kasih nama Cek.php dan simpan di folder Models. Berikut kodenya :


<?php
namespace Models;
use Resources;

class Cek extends Resources\Validation{
public function setRules(){
return array(
'kode'=>array(
'rules'=>array(
'required',
'max'=>6,
'callback'=>'cekkode'
)
),
'label'=>'Kode',
'filter'=>array('trim')
);
}
public function cekkode($field, $value, $label){

if(preg_match('/TKJ00/', $value)){
return true;
}

$this->setErrorMessage($field, 'Format Kode Harus TKJ001');

return false;
}
}
?>

Gunakan di Controller

Dan selanjutnya bikin controller kasih nama misal Kode.php dan ini kodenya :


<?php
namespace Controllers;
use Resources, Models;

class Kode extends Resources\Controller{

function __construct(){
parent::__construct();

$this->input = new Resources\Request;
$this->cek = new Models\Cek;
}
function index(){
$data['cek'] = $this->cek;

$this->output('kode_form', $data);
}
function proses(){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($this->cek->validate() == FALSE){
$data['cek'] = $this->cek;
$this->output('kode_form',$data);
}else{
$kode = $this->input->POST('kode', FILTER_SANITIZE_MAGIC_QUOTES);

echo $kode;
}
}
}
}
?>

Validasi inputnya

Nah, terakhir kita akan menggunakannya pada inputan yang akan kita proses. Bikin file view nah sesuaikan nama file view nya sama dengan yang ada di controller yaitu $this->output(‘kode_form’); jadi nama viewnya adalah kode_form.php. Ini kodenya :


<!DOCTYPE HTML>
<html>
<head>
<title>Input Kode</title>
</head>
<body>
<form action="<?php echo $this->uri->baseUri;?>index.php/kode/proses" method="POST">
<fieldset>
<ul><?php echo $cek->errorMessages(false, '<li>','</li>');?></ul>
<legend>Input Kode</legend>
<label>Kode</label>
<input type="text" name="kode" id="kode">
<input type="submit" name="submit" value="Cek Kode">
</fieldset>

</form>
</body>
</html>

Nah, kalo bener yang kita buat maka akan tampil berikut :

Pesan error muncul ketika bentuk inputan tidak sesuai

Pesan error muncul ketika bentuk inputan tidak sesuai

 

 

 

 

 

Nah, gampang kan semoga dapat memberikan jawaban dan memberikan manfaat untuk semua 🙂 maaf kalo tulisannya gak enak dibaca.

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s