本篇文章是對在zend Farmework下如何創立一個FORM表單的方法進行了詳細的分析介紹
需要的朋友參考下
首先讓我們設置一下我們的程序讓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目錄
方便程序的被載入
確認下form的目錄
在application/forms/下 建立一個 Guestbookphps
作為我們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(
))
)
));
// Add a captcha
$this
>addElement(
captcha
captcha
array(
label
=>
Please enter the
letters displayed below:
required
=> true
captcha
=> array(
captcha
=>
Figlet
wordLen
=>
timeout
=>
)
));
// 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/GuestbookControllerphp
復制代碼 代碼如下:
<?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/sginphp
復制代碼 代碼如下:
Please use the form below to sign our guestbook!
<?php
$this
>form
>setAction($this
>url());
echo $this
>form;
From:http://tw.wingwit.com/Article/program/PHP/201311/21290.html