为了使我们的留言本有用,我们需要一个可以提交新条目的表单。
我们第一件事是要创建事实表单的类。为了创建空的表单类,执行:
% zf create form Guestbook
Creating a form at application/forms/Guestbook.php
Updating project profile '.zfproject.xml'
这将创建 application/forms/ 目录,同时带有 Guestbook.php 这个类文件。打开文件,更新内容如下:
- <?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,
- ));
- }
- }
以上的表单定义了5个元素:一个邮件地址字段,一个留言字段,一个 CAPTCHA 用来防止拉圾提交,一个提交按钮,和一个 CSRF 保护口令。
下一步,我们需要添加一个 signAction() 到我们的 GuestbookController,它将接受提交,处理表单。为了创建行为和相关的视图脚本,执行以下命令:
% zf create action sign Guestbook
Creating an action named sign inside controller
at application/controllers/GuestbookController.php
Updating project profile '.zfproject.xml'
Creating a view script for the sign action method
at application/views/scripts/guestbook/sign.phtml
Updating project profile '.zfproject.xml'
正如你所看到的,这将创建一个 signAction() 方法到我们控制器中,同时还有相对应的视图脚本。
让我们向我们的 guestbook 控制器的 sign 行为添加一些逻辑。我们需要首先检查我们收到的是一个 POST 还是一个 GET 请求;在后面一种情况下,我们只需简单的显示表单。然而,如果我们得到的是一个 POST 请求,我们需要验证提交的表单数据,并且,如果是合法的话,创建一个新的条目并保存它。这个逻辑看起来是这样的:
- <?php
-
class GuestbookController extends Zend_Controller_Action
- {
-
// snipping indexAction()...
-
-
public function signAction()
- {
-
$request = $this->getRequest();
-
$form = new Application_Form_Guestbook();
-
if ($this->getRequest()->isPost()) {
-
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;
- }
- }
当然,我们也要编辑视图脚本;编辑 application/views/scripts/guestbook/sign.phtml 如下:
- <!-- application/views/scripts/guestbook/sign.phtml -->
- Please use the form below to sign our guestbook!
-
<?php
-
$this->form->setAction($this->url());
-
echo $this->form;
注意:更好看的表单
。。。。。。
分享到:
相关推荐
"ZendFramework-1.10.4-minimal" 这个标题表明我们正在处理的是 Zend Framework 的一个特定版本,即1.10.4,并且是精简版(minimal)。这意味着它可能包含了框架的核心组件,但可能去除了某些非必要的或附加的模块,...
最新手册针对的是 Zend Framework 1.10.4 版本,这个版本包含了多项改进和优化,确保了框架的稳定性和性能。 **主要组件** 1. **控制器(Controllers)**:在 MVC 模式中,控制器接收用户请求,处理业务逻辑,并...
6. 版本控制:HDF5-1.10.4是HDF5的一个特定版本,它可能引入了新的特性和修复了一些已知问题。例如,此版本可能提高了性能、增强了稳定性或添加了对新硬件和操作系统的支持。 在机器学习领域,如安装Caffe这样的...
总结,jQuery UI 1.10.4是一个强大而全面的前端UI框架,它提供的组件丰富多样,易用性强,能够帮助开发者快速构建功能丰富的交互式Web应用。通过熟练掌握jQuery UI,开发者可以大大提高工作效率,提升用户界面的用户...
而jQuery UI则是jQuery的一个扩展,提供了一系列用户界面组件,使得开发者能够快速构建交互性强、用户体验良好的网页应用。本文将深入探讨jQuery 2.1.0版本和jQuery UI 1.10.4版本的主要特性和功能。 首先,让我们...
"dojo-release-1.10.4"是Dojo框架的一个稳定版本,发布于2015年,它提供了大量的功能和改进,以支持开发人员构建高效、响应式的网页应用。 1. **Dojo核心模块**:Dojo的核心模块包括`dojo/_base`,它包含了基本的...
这个名为 "jquery-ui-1.10.4.custom" 的压缩包文件,很显然是一个自定义版本的 jQuery UI,版本号为 1.10.4。在本文中,我们将深入探讨 jQuery UI 的核心功能、使用场景以及其自定义版本的特性。 ### jQuery UI 的...
这种数据结构使得Numpy能够快速执行向量、矩阵和数组操作,极大地提高了计算速度。 Numpy提供了丰富的数学函数库,如四则运算、三角函数、指数和对数函数、统计函数等,可以直接作用于ndarray上,无需循环。例如,...
jquery-ui-1.10.4.min.js下载
当服务出现故障时,Consul 可以快速识别并通知系统,避免了故障扩散。 **Key/Value 存储** Consul 内置了一个简单的 Key/Value 存储,可用于存储和检索配置信息。这种分布式的 KV 存储允许开发者以集中式的方式管理...
《jQuery UI 1.10.4:深入解析与应用》 jQuery UI 是一个基于 jQuery 库的强大且灵活的用户界面工具集,它为开发者提供了丰富的组件和交互效果,极大地简化了网页界面的设计和开发。在本文中,我们将深入探讨 ...
gstreamer1-plugins-bad-free-1.10.4-3.el7.i686.rpm
jquery-ui-v1.10.4.js.这个有用到的就不必说了.加点资源分希望大家能理解
《jQuery UI 1.10.4 自定义版本详解》 jQuery UI 是一个基于 jQuery JavaScript 库的可扩展用户界面库。它提供了多种可重用的组件,包括对话框(Dialog)、滑块(Slider)、日期选择器(Datepicker)和许多其他交互...
TortoiseSVN-1.10.3.28489-x64-svn-1.10.4
numpy-1.10.4.tar.gz
jquery-ui-v1.10.4.css.必备资源.加点资源分希望大家能理解
java