Tags

, , ,

Dalam pemrograman web, form (atau disebut juga web form) digunakan untuk menggantikan kegunaan sebuah form kertas. Dalam membuat form, biasa menggunakan <form></form>. Kemudian untuk membuat elemen-elemen yang ada di dalam form (misal: Button, Textbox, Textarea, dsb) biasa digunakan <input type=”text” \>. Semua form dan elemen tersebut dimasukkan ke dalam sebuah tabel agar tampil lebih rapi. Pieform adalah library yang juga digunakan untuk membuat sebuah form, hanya saja pieform tidak menggunakan halaman HTML, tapi sepenuhnya menggunakan PHP.

Pada awalnya, pieform merupakan project dari Mahara (sebuah e-portfolio, weblog, resume builder dan social networking system yang bersifat open-source) tetapi kemudian berdiri sendiri dan dimasukkan ke dalam sourceforge. Ada 3 atau 4 hal yang dibutuhkan dalam pembuatan pieform:

  1. Satu Array yang besar digunakan untuk menentukan properti dari form dan elemen di dalam form
  2. Fungsi yang digunakan untuk validasi form. Fungsi ini bersifat optional karena validasi sudah tersedia.
  3. Fungsi yang digunakan untuk menangani semua nilai yang sudah disubmit. Nilai-nilai tersebut sudah tervalidasi.
  4. Fungsi pieform() untuk menampilkan form yang sudah dibuat.

Bingung ya?? Berikut adalah contoh dari form yang sederhana:

require_once('pieform.php');

echo pieform(array(
    'name' => 'testform',
    'method' => 'post',
    'action' => '',
    'elements' => array(
        'details' => array(
            'type'   => 'fieldset',
            'legend' => 'Your Details',
            'elements' => array(
                'fullname' => array(
                    'type'        => 'text',
                    'title'       => 'Full name',
                    'description' => 'Please enter your full name',
                    'rules' => array(
                        'required'    => true
                    )
                ),
                'dob' => array(
                    'type'        => 'date',
                    'title'       => 'Date of Birth',
                    'description' => 'Your date of birth',
                    'defaultvalue' => strtotime('1st of January, 1985'),
                    'rules' => array(
                        'required'    => true
                    )
                )
            )
        ),

        'submit' => array(
            'type'  => 'submit',
            'value' => 'Submit'
        )
    )
));

function testform_validate(Pieform $form, $values) {
    if (!$form->get_error('dob') && $values['dob'] < strtotime('1st of January, 1950')) {
        $form->set_error('dob', 'I will give you another chance to lie about your age, OK? : )');
    }
}

function testform_submit(Pieform $form, $values) {
    print_r($values);
    echo $values['fullname'];
    exit;
}

Untuk menggunakan pieform harus meng-include-kan file librarynya yang dapat didownload di sini. Setelah didownload, terdapat folder doc dan src di dalamnya. Copy folder src ke project yang akan menggunakan pieform dan lakukan require_once seperti di atas atau gunakan fungsi include( ) terhadap pieform.php. Berikut adalah bagian-bagian dari kode di atas:

  • satu array yang besar digunakan untuk menyimpan bentuk form. Nama form harus huruf kecil semua.
  • fungsi pieform( . . . ) untuk memanggil array form yang sudah didefinisikan.
  • fungsi testform_validate untuk mengecek validasi nilai dari form setelah dilakukan submit. Di dalam fungsi ini biasa diisi pengecekan nilai yang tidak tersedia pada yang ada di built-in rule (rule yang sudah tersedia pada array besar yang disebutkan pada poin satu, contohnya “required => true”). Nama fungsinya diawali sebuah nama form diikuti _validate (pada contoh di atas, nama formnya adalah testform, karena itu nama fungsinya adalah testform_validate)
  • fungsi testform_submit untuk menangani value yang sudah disubmit dan dicek validasinya. Nama fungsi diawali oleh nama form dan diikuti _submit seperti fungsi validate. Di dalam fungsi ini harus dilakukan hal-hal di bawah ini:
    => Untuk Form Standard, harus diarahkan ke halaman lain
       (atau tetap halaman tempat form berada) atau perintah exit seperti contoh di atas
    => Untuk Form Javascript, harus ditambahkan perintah
       $form->json_reply(PIEFORM_OK, 'optional message')

Kelebihan-kelebihan lain pada pieform adalah sebagai berikut:

  • terdapat Cancel button, dengan mengubah ‘type’ => ‘submit’ menjadi ‘type’ => ‘submitcancel’
  • Auto Focus pada saat halaman selesai diload
  • pengaturan tabindex secara otomatis
  • dsb

Untuk lebih jelasnya, dapat dilihat pada folder pieform yang sudah didownload, doc->html->user->concepts.html.

Berikut adalah screenshot dari kode di atas