程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 解析在zend Farmework下如何創立一個FORM表單

解析在zend Farmework下如何創立一個FORM表單

編輯:關於PHP編程
    本篇文章是對在zend Farmework下如何創立一個FORM表單的方法進行了詳細的分析介紹,需要的朋友參考下  

    1.首先讓我們設置一下我們的程序,讓Zend能夠自動載入方法,不需要我們手動的去載入

    復制代碼 代碼如下:
    require_once 'Zend/Loader/Autoloader.php' //載入自動加載類
    $loader = Zend_Loader_Autoloader::getInstance();//自動實例化
    $loader->registerNamespace('Application_');//注冊命名空間(只有系統默認的,和注冊的才可以被自動載入)
    $loader->registerNamespace(array('Foo_', 'Bar_')); //多個命名空間的注冊方法
    $loader->setFallbackAutoloader(true); //一個增加消耗的方法,不需要命名空間,直接載入所有類(不被推薦使用)


    然後請注意,你的包含目錄是否已經包含了,你自己的需被載入的目錄

    復制代碼 代碼如下:
    set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    realpath(APPLICATION_PATH . '/forms/'),
    get_include_path(),
    )));
    //這裡我們包含了我們的forms目錄,方便程序的被載入


    2.確認下form的目錄
    在application/forms/下 建立一個 Guestbook.phps
    作為我們form的類文件,如下:

    復制代碼 代碼如下:
    <?php
    class Application_Form_Guestbook extends Zend_Form
    {
    public function init()
    {
    // Set the method for the display form to POST
    $this->setMethod('post');//設置提交方式

    // Add an email element
    $this->addElement('text', 'email', array(//原件的類型,名詞,和一些其他信息的定義
    'label' => 'Your email address:',
    'required' => true,
    'filters' => array('StringTrim'),
    'validators' => array(
    'EmailAddress',
    )
    ));

    // Add the comment element
    $this->addElement('textarea', 'comment', array(
    'label' => 'Please Comment:',
    'required' => true,
    'validators' => array(
    array('validator' => 'StringLength', 'options' => array(0, 20))
    )
    ));

    // Add a captcha
    $this->addElement('captcha', 'captcha', array(
    'label' => 'Please enter the 5 letters displayed below:',
    'required' => true,
    'captcha' => array(
    'captcha' => 'Figlet',
    'wordLen' => 5,
    'timeout' => 300
    )
    ));

    // Add the submit button
    $this->addElement('submit', 'submit', array(
    'ignore' => true,
    'label' => 'Sign Guestbook',
    ));

    // And finally add some CSRF protection
    $this->addElement('hash', 'csrf', array(
    'ignore' => true,
    ));
    }
    }


    然後添加一個路由控制文件
    applictaion/controller/GuestbookController.php

    復制代碼 代碼如下:
    <?php
    class GuestbookController extends Zend_Controller_Action
    {
    // snipping indexAction()...
    public function signAction()
    {
    $request = $this->getRequest();//獲取接受到得信息
    // include_once("../application/forms/Guestbook.php"); 手動加載類,只有不能自動載入時,才需要
    $form = new Application_Form_Guestbook;//實例化這個方法

    if ($this->getRequest()->isPost()) {//如果是POST傳遞的結果
    if ($form->isValid($request->getPost())) {//判斷傳遞是否有效
    $comment = new Application_Model_Guestbook($form->getValues());
    $mapper = new Application_Model_GuestbookMapper();
    $mapper->save($comment);
    return $this->_helper->redirector('index');
    }
    }

    $this->view->form = $form;//將表單賦值給試圖
    }
    }


    最後添加一個簡單的sign視圖文件即可:
    地址:application/views/scripts/guestbook/sgin.php

    復制代碼 代碼如下:
    Please use the form below to sign our guestbook!
    <?php
    $this->form->setAction($this->url());
    echo $this->form;
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved