Chinaunix首页 | 论坛 | 博客
  • 博客访问: 198179
  • 博文数量: 99
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1045
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-15 14:24
文章分类
文章存档

2015年(9)

2014年(90)

我的朋友

分类: PHP

2014-08-06 16:19:29

首先,我们利用Zend_Form组件来创建一个带有数据验证的留言内容输入表单。
在application目录下新建名为forms的文件夹,放置于forms文件夹的类将会自己加载,这里必须遵循命名规则和文件结构。新建名为Default_Form_Guestbook的表单类代码以下。

点击(此处)折叠或打开

  1. <?php
  2. class Default_Form_Guestbook extends Zend_Form
  3. {
  4.     public function __construct($options = null)
  5.     {
  6.         parent::__construct($options);
  7.         $this->setName('guestbook');//表单ID
  8.         $id = new Zend_Form_Element_Hidden('id');//创建ID为'id'的隐藏input控件


  9.         $name = new Zend_Form_Element_Text('name');//创建名为'name'的文本输入框,
  10.         $name->setLabel('姓名')
  11.              ->setRequired(true)//数据验证,必填以内
  12.              ->addFilter('StripTags')//将HTML代码实体化
  13.              ->addFilter('StringTrim');//去除字符边界空白


  14.         $email = new Zend_Form_Element_Text('email');
  15.         $email->setLabel('电子邮箱')
  16.               ->setRequired(true)
  17.               ->addFilter('StripTags')
  18.               ->addFilter('StringTrim')
  19.               ->addValidator('EmailAddress');//验证邮箱地址


  20.         $content = new Zend_Form_Element_Textarea('content');
  21.         $content->setLabel('留言内容')
  22.                 ->addFilter('StripTags')
  23.                 ->addFilter('StringTrim')
  24.                 ->setRequired(true);


  25.         $submit = new Zend_Form_Element_Submit('add');//创建提交按钮
  26.         $submit->setAttrib('id','submitbutton')->setLabel('添加');


  27.         $this->addElements(array($id,$name,$email,$content,$submit));//组装表单
  28.     }
  29. }
  30. ?>


请以上代码保存名为Guestbook.php,放于application/forms目录下,Default_Form_Guestbook很简单,主要设置生成HTML表单。接下来,就可以在控制器的方法里使用了。


在application/controllers目录下新建名为GuestbookController的控制器,添加add方法,用于显示刚才创建的表单。代码如下。

点击(此处)折叠或打开

  1. <?php
  2. class GuestbookController extends Zend_Controller_Action
  3. {
  4.     public function addAction()
  5.     {
  6.         $form = new Default_Form_Guestbook();
  7.         $this->view->form = $form;
  8.     }
  9. }
  10. ?>

代码很简单,通过new Default_Form_Guestbook()生成表单HTML代码,然后通过$this->view->form将代码发送到模板页显示。

最后一步,在application/views/scripts/guestbook目录下创建名为add.phtml的模板文件。代码如下。

点击(此处)折叠或打开

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <HTML>
  3. <HEAD>
  4. <TITLE>zend framework 简单留言簿</TITLE>
  5. </HEAD>


  6. <BODY>
  7. <?php echo $this->form;?>
  8. </BODY>
  9. </HTML>


模板页也很简单,只是负责将控制器里add方法传过来的$form变量内容显示到页面。
阅读(562) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~