解析在zend Farmework下如何创立一个FORM表单


Posted in PHP onJune 28, 2013

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;

PHP 相关文章推荐
Php做的端口嗅探器--可以指定网站和端口
Oct 09 PHP
php获取mysql数据库中的所有表名的代码
Apr 23 PHP
php获得用户ip地址的比较不错的方法
Feb 08 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
php文件操作相关类实例
Jun 18 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
XHProf报告字段含义的解析
May 17 PHP
PHP实现多关键字加亮功能
Oct 21 PHP
Laravel框架文件上传功能实现方法示例
Apr 16 PHP
php array 转json及java 转换 json数据格式操作示例
Nov 13 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 24 PHP
解析zend Framework如何自动加载类
Jun 28 #PHP
使用PHP接收POST数据,解析json数据
Jun 28 #PHP
PHP遍历某个目录下的所有文件和子文件夹的实现代码
Jun 28 #PHP
下拉列表多级联动dropDownList示例代码
Jun 27 #PHP
解析PHP函数array_flip()在重复数组元素删除中的作用
Jun 27 #PHP
PHP数组排序函数合集 以及它们之间的联系分析
Jun 27 #PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
Jun 27 #PHP
You might like
ThinkPHP分页类使用详解
2014/03/05 PHP
jquery ajax 检测用户注册时用户名是否存在
2009/11/03 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
JQuery查找DOM节点的方法
2015/06/11 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
解决WordPress使用CDN后博文无法评论的错误
2015/12/15 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
jQuery Ajax前后端使用JSON进行交互示例
2017/03/17 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
vue动态设置img的src路径实例
2018/09/18 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
配置node服务器并且链接微信公众号接口配置步骤详解
2019/06/21 Javascript
Javascript实现关闭广告效果
2021/01/29 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
Python对象体系深入分析
2014/10/28 Python
Python中常见的数据类型小结
2015/08/29 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
python实现机械分词之逆向最大匹配算法代码示例
2017/12/13 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
HTML5事件方法全部汇总
2016/05/12 HTML / CSS
AE美国鹰美国官方网站:American Eagle Outfitters
2016/08/22 全球购物
Skyscanner澳大利亚:全球领先的旅游搜索网站
2018/03/24 全球购物
PUMA澳大利亚官方网站:德国运动品牌
2018/10/19 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
澳大利亚人信任的清洁平台,您的私人管家:Jarvis
2020/12/25 全球购物
英语专业应届生求职信范文
2013/11/15 职场文书
周年庆典邀请函范文
2014/01/23 职场文书
主题实践活动总结
2014/05/08 职场文书
党的群众路线教育实践活动宣传标语口号
2014/06/06 职场文书
运动会口号16字
2014/06/07 职场文书
在校实习生求职信
2014/06/18 职场文书
2014初中数学教研组工作总结
2014/12/19 职场文书
总经理助理岗位职责
2015/01/31 职场文书
行政上诉状范文
2015/05/23 职场文书
党校培训学习心得体会
2016/01/06 职场文书