Home > Zend_Form > Zend_Formのバリデーション

Zend_Formのバリデーション

intro
Zend Formで簡単な入力チェックを使用してみます。ソースコードはこちらからダウンロードできます。

1.コントローラの作成
以下のようにapplication/constorllers/IndexController.phpファイルを作成します。

<?php
require_once 'Zend/Controller/Action.php';
require_once 'Zend/Form.php';
 
class IndexController extends Zend_Controller_Action
{
    public function getProfileForm()
    {
        $form = new Zend_Form();
        $form->setAction($this->_request->getBaseUrl() . '/index/profile')
             ->setMethod('post');
 
        $givenName = $form->createElement('text', 'givenName');
        $givenName->setLabel('Given Name')
                  ->setRequired(true)
                  ->addFilter('stringTrim')
                  ->addValidator('stringLength', false, array(1,50));
        $familyName = $form->createElement('text', 'familyName');
        $familyName->setLabel('Family Name')
                   ->setRequired(true)
                   ->addFilter('stringTrim')
                   ->addValidator('stringLength', false, array(1,50));
        $email = $form->createElement('text', 'email');
        $email->setLabel('E-Mail')
              ->setRequired(true)
              ->addFilter('stringTrim')
              ->addValidator('emailAddress', false);
        $url = $form->createElement('text', 'url');
        $url->setLabel('URL')
            ->setRequired(false)
            ->addFilter('stringTrim')
            ->addValidator('stringLength', false, array(1,100));
        $submit = $form->createElement('submit', 'submit');
        $submit->setLabel('Send');
 
        $form->addElements(array(
            $givenName, $familyName, $email, $url, $submit
        ));
 
        return $form;
    }
 
    public function indexAction()
    {
        $this->_forward('profile');
    }
 
    public function profileAction()
    {
        $form = $this->getProfileForm();
        if ($this->getRequest()->isPost()) {
            if ($form->isValid($_POST)) {
                $values = $form->getValues();
                $this->view->values = $values;
            }
        }
        $this->view->form = $form;
    }
}
2.ビューの作成
以下のようにapplication/views/scripts/error/profile.phtmlファイルを作成します。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Zend Framework Quick Start</title>
  </head>
  <body>
<h1 id="5_basic-blog_1" ><?= $this->translate('Your Profile'); ?></h1>
 
    <?php if($this->values) : ?>
<h3 id="5_submitted" >
      <?= $this->translate('You just submitted the following values'); ?>:
    </h3>
<ul>
      <?php foreach ($this->values as $value) <img src='http://www.oplabo.jp/wp-includes/images/smilies/icon_confused.gif' alt=':?' class='wp-smiley' /> >
<li>
        <?= $this->escape($value); ?>
      </li>
 
      <?php endforeach; ?>
    </ul>
 
    <?php else : ?>
        <?= $this->form; ?>
    <?php endif; ?>
  </body>
</html>

3.確認
Webサーバにアクセスし、項目ごとにバリデーションが実施されていることを確認してください。

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://www.oplabo.jp/article/10/trackback
Listed below are links to weblogs that reference
Zend_Formのバリデーション from Open Programming Laboratory

Home > Zend_Form > Zend_Formのバリデーション

English
Search
Feeds

Return to page top