Kamis, 08 Mei 2014

Membuat Form pada Zend Framework 2


Form biasanya dibuat dengan menggunakan HTML, berbeda dengan zend framework yang dimana telah mempunyai segalanya pada Zend/Form. Hanya cukup dipanggil saja element yang nantinya ingin dipakai pada halaman formulir yang ingin anda buat.

Untuk membuat form pada zend dapat dilakukan dengan cara berikut ini :
  1. Buatlah folder form terlebih dahulu di src/Users/
  2. Jika telah selesai membuat folder form, anda buat file RegistrationForm.php dan masukan source code berikut ini :
    <?php
    //filename : module/Users/src/Users/Form/RegisterForm.php
    namespace Users\Form;
    use Zend\Form\Form;
    class RegisterForm extends Form
    {
    public function __construct($name = null)
    {
    parent::__construct('Register');
    $this->setAttribute('method','post');
    $this->setAttribute('enctype','multipart/form-data');
    $this->add(array(
    'name'=>'name',
    'atributes'=>array(
    'type'=>'text',
    ),
    'options'=>array(
    'label'=>'Full Name',
    ),
    ));
    $this->add(array(
    'name'=>'email',
    'attributes'=>array(
    'type'=>'email',
    ),
    'options'=>array(
    'label'=>'Email',
    ),
    'atributes'=>array(
    'required'=>'required',
    ),
    'filters'=>array(
    array('name'=>'StringTrim'),
    ),
    'validators'=>array(
    array(
    'name'=>'EmailAddress',
    'options'=>array(
    'messages'=>array(
    \Zend\Validator\EmailAddress::INVALID_FORMAT=>'Email address format is invalid'
    )
    )
    )
    )
    ));
    $this->add(array(
    'name'=>'password',
    'attributes'=>array(
    'type'=>'password',
    ),
    'options'=>array(
    'label'=>'Password'
    ),
    ));
    $this->add(array(
    'name'=>'confirm_password',
    'attributes'=>array(
    'type'=>'password',
    ),
    'options'=>array(
    'label'=>'Confirm Password'
    ),
    ));
    $this->add(array(
    'name'=>'submit',
    'attributes'=>array(
    'type'=>'submit',
    'value'=>'Register',
    'id'=>'submitbutton',
    ),
    ));
    }
    }
  3. Bukalah folder view dan buat sebuah folder dan beri nama folder tersebut users
  4. Buka folder users yang baru anda buat dan buat kembali sebuah folder didalam folder users dan beri nama folder tersebut register
  5. Buka folder register yang baru dibuat dan buat sebuah file beri nama index.phtml
  6. Masukan source code berikut pada index.phtml
    <section class="register">
    <h2>Register</h2>
    <?php if ($this->error): ?>
    <p class="error">
    There were one or more issues with your submission.
    Please correct the as indicated bellow.
    </p>
    <?php endif ?>
    <?php
    $form = $this->form;
    $form->prepare();
    $form->setAttribute('action',$this->url(NULL,
    array('controller'=>'register','action'=>'process')));
    $form->setAttribute('method','post');
    echo $this->form()->openTag($form);
    ?>
    <dl class="zend_form">
    <dt><?php echo $this->formLabel($form->get('name')); ?></dt>
    <dd><?php
    echo $this->formElement($form->get('name'));
    echo $this->formElementErrors($form->get('name'));
    ?></dd>
    <dt><?php echo $this->formLabel($form->get('email')); ?></
    dt>
    <dd><?php
    echo $this->formElement($form->get('email'));
    echo $this->formElementErrors($form->get('email'));
    ?></dd>
    <dt><?php echo $this->formLabel($form->get('password'));
    ?></dt>
    <dd><?php
    echo $this->formElement($form->get('password'));
    echo $this->formElementErrors($form->get('password'));
    ?></dd>
    <dt><?php echo $this->formLabel($form->get('confirm_password')); ?></dt>
    <dd><?php
    echo $this->formElement($form->get('confirm_password'));
    echo $this->formElementErrors($form->get('confirm_password'));
    ?></dd>
    <br>
    <dd><?php
    echo $this->formElement($form->get('submit'));
    echo $this->formElementErrors($form->get('submit'));
    ?></dd>
    </dl>
    <?php echo $this->form()->closeTag()?>
    </section>
  7. Buatlah konfirmasi halamananya. Buat file confirm.phtml pada folder view/users/register/ dan masukan source berikut ini :
    <section class="register-confirm">
    <h2>Register Sucessfull</h2>
    <p> Thank you for your registration. </p>
    </section>
  8. Sekarang buatlah folder Users pada controller
  9. Setelah folder Users dibuat maka buat sebuah file beri nama RegisterController.php
  10. Buka file RegisterController.php dan masukan source berikut ini :
    <?php
    namespace Users\Controller;
    use Zend\Mvc\Controller\AbstractActionController;
    use Zend\View\Model\ViewModel;
    use Users\Form\RegisterForm;
    class RegisterController extends AbstractActionController
    {
    public function indexAction()
    {
    $form = new RegisterForm();
    $viewModel = new ViewModel(array('form' =>
    $form));
    return $viewModel;
    }
    public function confirmAction()
    {
    $viewModel = new ViewModel();
    return $viewModel;
    }
    }
  11. Buka folder config/module.config.php cari yang bernama invokable dan cocokan sourcenya seperti dibawah ini :
    'controllers' => array(
    'invokables' => array(
    'Users\Controller\Index' =>
    'Users\Controller\IndexController',
    'Users\Controller\Register' =>
    'Users\Controller\RegisterController',
    ),
  12. Buka browser anda dan ketikan alamat url localhost/ZendSkeletonapplication/public/users/register maka akan tampil seperti berikut ini :
Dalam bentuk PDF dapat di download disini

Tidak ada komentar:

Posting Komentar