熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PHP編程 >> 正文

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

2013-11-15 12:37:11  來源: PHP編程 
本篇文章是對在zend Farmework下如何創立一個FORM表單的方法進行了詳細的分析介紹需要的朋友參考下  

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

復制代碼 代碼如下:
require_once Zend/Loader/Autoloaderphp //載入自動加載類
$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/Guestbookphp"); 手動加載類只有不能自動載入時才需要
$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
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.