Oleh: Ahmad Syauqi Ahsan

dokumen-dokumen yang mirip
Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Oleh: Ahmad Syauqi Ahsan

Gambar 1. Tampilan form karyawan

Oleh: Ahmad Syauqi Ahsan

Pengenalan JavaScript

Oleh: Ahmad Syauqi Ahsan

Validasi Form dengan CakePHP

Oleh: Ahmad Syauqi Ahsan

Bab 4 Hasil dan Pembahasan

BAB III IMPLEMENTASI DAN PEMBAHASAN


LAPORAN PRAKTIKUM TEKNOLOGI FRAMEWORK PERTEMUAN KE 1

Upload File dengan Metode AJAX

Oleh: Ahmad Syauqi Ahsan

Form Mampu membuat form dan dan mengirim data ke halaman lain Pengaturan Validasi dan keamanan form. Sesi 5

LAPORAN RESMI PRAKTIKUM II WEB DESAIN PENGENALAN JAVASCRIPT

PEMROGRAMAN PHP DASAR

BERKENALAN DENGAN MODEL CODEIGNITER

Membuat Form Kontak yang Indah dan Atraktif dengan AJAX [Part 5]

MODUL 8 Insert, Update, & delete

Bab 4 Pembahasan Dan Hasil Pengujian

PEMROGRAMAN WEB 08 JavaScript Dasar

BAB III ANALISIS DAN DESAIN SISTEM

Modul-5 GET & POST. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

2014 TUTORIAL PANADA FRAMEWORK BY DIMAS EDU

MODUL 5 GET & POST Pemograman Web Teknik Informatika Universitas Pasundan Bandung 2016/2017

Oleh: Ahmad Syauqi Ahsan

Gambar 4.28Konfigurasi Base Path dan Sistem

USER MANUAL E-PROCUREMENT CKB (Vendor)

Pemrograman PHP Lanjut. Ahmad Zainudin, S.ST Pemrograman Internet

DAFTAR ISI BAB II TINJAUAN PUSTAKA 8

Pemrograman Web PRAKTIKUM 6. Query Data 2. TUJUAN BELAJAR Mahasiswa dapat menggunakan PHP dan MySQL untuk mengupdate data

Modul-7 CRUD & Searching. Pemograman Web TEKNIK INFORMATIKA UNIVERSITAS PASUNDAN BANDUNG

1.1. Halaman Login Halaman Utama ResellerEnterprise User Management Sender Management...

3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

Bab 4 Hasil dan Pembahasan

Kapita Selekta (KBKI82127, 2 sks) Materi : Penanganan Form

SMART LOGIN PADASITUSWEB MENGGUNAKANQR-CODE. Masdito Bachtiar Pembimbing 1 : Ary Mazharuddin S., S.Kom., M.Comp.Sc

LAMPIRAN 1. Script Database a) Semester b) Mata Praktikum c) Jadwal d) Waktu pelaksanaan

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB III PEMBAHASAN 3.1 Analisa Sistem

BAB IV HASIL DAN PEMBAHASAN

PEMROGRAMAN WEB 09 JavaScript Lanjut

Pemrograman Web Berbasis Framework. Pertemuan 7 : Keamanan Aplikasi. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

BAB III ANALISIS DAN DESAIN SISTEM

YUPOCOM COMPUTER EDUCATION. JavaScript. 1. Mengenal JavaScript Hal yang harus diketahui Apa itu JavaScript. 2.

2. DASAR TEORI 2.1 PHP5

DAFTAR PUSTAKA. Adisasmita, Rahardjo Pengelolaan Pendapatan & Anggaran Daerah. Yogyakarta: Graha Ilmu.

PEMROGRAMAN WEB. 11 XML, XHTML dan JSON. Andi WRE

LAPORAN RESMI. PRAKTIKUM TEKNOLOGI WEB Pengenalan JavaScript

DAFTAR ISI. LAPORAN TUGAS AKHIR... ii

Mengenal dan Mulai Bekerja dengan Access 2007

LAMPIRAN-LAMPIRAN. Binusmaya melalui browser di handphone (mobile) dan fitur Binusmaya apa yang

PHP (HYPERTEXT PREPROCESSOR)

Formulir. Menyisipkan / membuat formulir, lakukan salah satu cara berikut : Insert Forms Insert Bar, pilih kategori Forms

E-trik Ajax. Database MySQL. Dedi Alnas

Membuat Tabel. Tahapan membuat tabel menggunakan Microsoft Access 2007 : 1. Pilih menu create >> table. Microsoft Office Access Field.

PHP mendukung komentar yang digunakan pada C, C++ dan Shell Unix. Sebagai contoh:

BAB 3 ANALISIS DAN PERANCANGAN. menentukan dan mengungkapkan kebutuhan sistem. Kebutuhan sistem terbagi menjadi

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

Oleh: Ahmad Syauqi Ahsan

SMH2D3 Web Programming. 7 BAB V PHP SESSION & COOKIES. H a l IDENTITAS. Kajian Teknik pemrograman menggunakan PHP

BAB III ANALISA DAN PERANCANGAN

BAB IV HASIL DAN UJI COBA

A. Tujuan B. Dasar Teori 1. Pemrosesan Form 2. Konsep Penggunaan Tag <form> pada HTML

BAB IV IMPLEMENTASI SISTEM

Pemrograman Web Berbasis Framework. Pertemuan 4 : Konsep MVC : Controller. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN PERANCANGAN SISTEM

PHP File Upload.

KATA PENGANTAR Puji dan syukur penulis panjatkan kehadirat Allah SWT yang telah memberikan rahmat-nya sehingga penulis dapat menyelesaikan ebook ini.

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN PERANCANGAN

Bab 4 Hasil dan Pembahasan

BAB III ANALISA DAN DESAIN SISTEM

BAB IV HASIL DAN PEMBAHASAN

Pada Halaman ini user dapat mengganti password yang sudah ada dengan melakukan :

TUTORIAL CODEIGNITER Langkah Tepat menjadi Web Developer Handal, menguasai CodeIgniter, jalan membuat aplikasi berbasis website lebih mudah

Prosedur merupakan suatu tata cara kerja atau kegiatan untuk menyelesaikan pekerjaan

MODUL 4 PHP PART 1 (PENGENALAN PHP + VARIABEL)

BAB IV PERANCANGAN SISTEM. Sistem yang dikembangkan dalam penelitian ini dikhususkan untuk desktop

Modul Pembangunan Aplikasi Basis Data Lanjut 2014

Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser

MODUL GET DAN POST

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

Multiple Upload dengan Jumlah Dinamis Menggunakan Javascript dalam Framework CodeIgniter

Praktikum 9 Validasi A. T U J U A N Memvalidasi Data Menggunakan Properti Required

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

BAB V IMPLEMENTASI DAN PEMBAHASAN

BAB III ANALISIS DAN UJI COBA

KUM 3 IMPLEMENTASI LIST

BAB III ANALISIS DAN DESAIN SISTEM

Aplikasi standar dari gii generator Untuk operasi CRUD tabel tunggal. Contoh: struktur tbl_mhs

7.2 Saran DAFTAR PUSTAKA LAMPIRAN

Transkripsi:

Oleh: Ahmad Syauqi Ahsan

Cara utama untuk membuat form dalam Yii adalah melalui yii\widgets\activeform. Pada banyak kasus, form yang ditampilkan ke pengguna mempunyai relasi dengan Model, Model yang terhubung dengan table di database (berbasis yii\db\activerecord) Model berdiri sendiri (berbasis yii\base\model) seperti model untul Login Form. Semua yang berada diantara ActiveForm::begin() dan ActiveForm::end() akan diletakkan didalam tag html <form>. Untuk membuat elemen pada form (beserta label dan validasi javascript-nya) dapat dilakukan dengan memanggil metode ActiveForm::field(). Kode php yang menggunakan akan menghasilkan file html yang berisi elemen <form>, <label>, <input>, dan tag-tag lainnya sesuai template yang digunakan. Atribut name pada elemen <input> akan di-generate secara otomatis dengan pola nama_model[nama_atribut]. Misal: LoginForm[username] 2

// The View <?php use yii\helpers\html; use yii\widgets\activeform;?> <?php $form = ActiveForm::begin(['id' => 'login-form', 'options' => ['class' => 'form-horizontal'],])?> // The LoginForm Model <?php class LoginForm extends \yii\base\model public $username; public $password; public $email; // adding a hint and a customized label <?= $form->field($model, 'username')->textinput() ->hint( Please enter your name )->label( Name )?> // a password input with asterisk <?= $form->field($model, 'password')->passwordinput()?> // creating a HTML5 email input element <?= $form->field($model, email')->input( email )?> public function rules() return [ // define validation rules here ]; <div class="form-group"> <div class="col-lg-offset-1 col-lg-11"> <?= Html::submitButton('Login', [ 'class' => 'btn btn-primary'])?> </div> </div> <?php ActiveForm::end()?> 3

Aturan dasar: jangan percaya input dari pengguna selalu lakukan validasi Input dari pengguna yang dimasukkan melalui Model dapat divalidasi dengan memanggil metode yii\base\model::validate(). Metode diatas akan mengembalikan nilai true jika proses validasi berhasil, dan akan mengembalikan pesan error jika tidak. Secara default, validasi input ini dilakukan disisi client (menggunakan javascript). // in Controller //... public function actioncontact() $model = new \app\models\contactform(); // populate model attributes with user inputs if ($model->load(\yii::$app->request->post())) if ($model->validate()) // all inputs are valid else // validation failed: $errors is an array // containing error messages $errors = $model->errors; else // if no user inputs, render view contact return $this->render( contact, [ model => $model ]); 4

Untuk membuat metode yii\base\model::validate() dapat bekerja, anda perlu mendeklarasikan rule untuk setiap atribut yang akan divalidasi. Rule validasi dapat dibuat dengan mengoverride metode yii\base\model::rules(). Metode ini harus mengembalikan nilai dalam bentuk array dari rule-rule yang dibuat. Setiap rule minimal memiliki atribut dimana rule tersebut diberlakukan dan tipe dari validator (misal: required, email, string, etc). Setiap rule dapat digunakan untuk mengatur satu atau beberapa atribut sekaligus. Keyword: Core Validators // inside the Model //... public function rules() return [ // the email attribute should be a valid email // address ['email', 'email'], ]; //.. // the name, email and birthdate // attributes are required [['name', 'email, birthdate ], 'required'], // the city attribute should be string and not // exceeds 50 characters in length [[ city'], 'string', 'max' => 50], 5

Hampir semua tipe validator memiliki pesan error masing-masing. Untuk mengkustomisasi pesar error dapat dilakukan dengan menambahkan property message ketika mendeklarasi rule. Beberapa validator ada yang mendukung property tambahan yang dapat digunakan untuk menampilkan pesan error yang lebih detil. // inside the Model //... public function rules() return [ // custom error message if the name field // is empty ['name', 'required, message => Anda harus mengisi nama ], // more precise custom error message ['paygrade', 'integer', 'min' => 5, 'max' => 10, 'toobig'=> 'Nilai terlalu besar ], ]; //.. 6

// inside the Model //... public function rules() return [ // country attribute should not be empty [ country', 'required ], Validasi juga dapat dilakukan hanya jika kondisi tertentu terpenuhi. Hal diatas dapat dilakukan dengan cara mengisi property when dengan fungsi yang berisi kondisi yang diinginkan. Jika anda juga menginginkan validasi juga dilakukan di sisi client, gunakan property whenclient yang berisi string yang merepresentasikan fungsi JavaScript. Fungsi JavaScript ini harus mengembalikan nilai apakah akan melakukan validasi atau tidak. Lihat contoh disamping // state attribute should not be empty // only when country attribute is USA [ state', required', 'when' => function ($model) return $model->country == 'USA';, 'enableclientvalidation' => false ], // state2 attribute should not be empty // only when country attribute is USA [ state', required', 'when' => function ($model) return $model->country == 'USA';, 'whenclient' => "function (attribute, value) return $('#contactform-country').val() == 'USA'; " ], ]; //.. 7

Pada banyak kasus, masukan dari user harus di-filter terlebih dahulu. Sebagai contoh: Menghapus spasi kosong sebelum dan sesudah nama user Mengganti atribut yang kosong (tidak diisi) dengan nilai default Validation rule juga dapat digunakan untuk mengatasi hal ini // inside the Model //... public function rules() return [ // value of username and email attributes // will be trimmed before save [[ username', email ], trim ], // set "username" and "email" as null if they // are empty [['username', 'email'], 'default'], // set "level" to be 1 if it is empty [ level', default', value => 1], ]; //.. 8

Untuk membuat form yang menerima file upload, ikuti langkah2 berikut: Membuat/mengubah Model agar dapat menangani file upload. Membuat/mengubah View yang akan menerima file upload Membuat/mengubah Controller yang akan menghubungkan View dengan Model 9

<?php namespace app\models; use yii\base\model; use yii\web\uploadedfile; Tambahkan library class yii\web\uploadedfile Tambahkan sebuah variable/atribut baru untuk menerima file pada Model. (misal: $file1) Tambahkan rule yang menyatakan bahwa atribut $file1 diatas adalah sebuah file Anda juga dapat menambahkan validasi, misal untuk memastikan bahwa yang dapat diupload hanya file dengan ekstensi.jpg dan.gif saja. /** * UploadForm is the model behind the upload form. */ class UploadForm extends Model /** * @var UploadedFile file attribute */ public $file1; /** * @return array the validation rules. */ public function rules() return [ [['file1'], 'file', 'extensions' => 'gif, jpg'], ]; 10

Pastikan untuk menambahkan parameter ['options' => ['enctype' => 'multipart/form-data']] pada ActiveForm::begin agar file upload dapat dilakukan. ->fileinput() akan membuat form input yang akan menerima file> <?php use yii\widgets\activeform;?> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> <?= $form->field($model, 'file1')->fileinput()?> <button>submit</button> <?php ActiveForm::end()?> 11

use yii\web\controller; use app\models\uploadform; use yii\web\uploadedfile; Controller bertugas untuk menghubungkan antara View dengan Model. Gunakan class yii\web\uploadedfile Dan jangan lupa untuk menggunakan class yii\web\uploadedfile Pastikan untuk menambahkan parameter ['options' => ['enctype' => 'multipart/form-data']] pada ActiveForm::begin agar file upload dapat dilakukan. ->fileinput() akan membuat form input yang akan menerima file> class SiteController extends Controller public function actionupload() $model = new UploadForm(); if (Yii::$app->request->isPost) $model->file1 = UploadedFile::getInstance( $model, 'file1'); if ($model->file1 && $model->validate()) $model->file1->saveas('uploads/'. $model ->file1->basename. '.'. $model->file1->extension); return $this->render('upload', ['model' => $model]); 12

Untuk membuat form untuk meng-upload beberapa file bersamaan, anda perlu melakukan beberapa perubahan: Pada Model: tambahkan property 'maxfiles' => 5. Pada View: Ubah nama atribut dari model menjadi bentuk array ('file1' menjadi 'file1[]'). Tambahkan property ['multiple' => true] pada metode - >fileinput(). Pada Controller: Ganti metode getinstance() menjadi getinstances(). Gunakan foreach() untuk menyimpan semua file 13

use yii\web\controller; use app\models\uploadform; use yii\web\uploadedfile; class SiteController extends Controller public function actionupload() $model = new UploadForm(); if (Yii::$app->request->isPost) $model->file1 = UploadedFile::getInstances( $model, 'file1'); if ($model->file1 && $model->validate()) foreach($model->file1 as $file) $file->saveas('uploads/'. $file->basename. '.'. $model->file->extension); return $this->render('upload', ['model' => $model]); <?php namespace app\models; use yii\base\model; use yii\web\uploadedfile; class UploadForm extends Model public $file1; public function rules() return [ [['file1'], 'file', 'maxfiles' => 5 'extensions' => 'gif, jpg'], ]; <?php use yii\widgets\activeform;?> <?php $form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']])?> <?= $form->field($model, 'file1')->fileinput( ['multiple' => true])?> <button>submit</button> <?php ActiveForm::end()?> 14

15