簡體   English   中英

全站點Zend_Form

[英]Site wide Zend_Form

如何在我的layout.phtml中添加一個表單?

我希望能夠有一個搜索表單和一個登錄表單,該表單在我網站上的每個表單中都可以保留。

我有一篇博客文章對此進行了解釋: http : //blog.zero7ict.com/2009/11/how-to-create-reusable-form-zend-framework-zend_form-validation-filters/

在您的應用程序文件夾中創建一個窗體文件夾

這是一個示例表格:

<?php
class Form_CreateEmail extends Zend_Form
{
public function __construct($options = null)
{
    parent::__construct($options);

    $this->setName('createemail');
    $title = new Zend_Form_Element_Text('title');
    $title->setLabel('Subject')
    ->setRequired(true)
    ->addFilter('StripTags')
    ->addFilter('StringTrim')
    ->addValidator('NotEmpty');
    $info = new Zend_Form_Element_Textarea('info');
    $info->setLabel('Email Content')
    ->setAttribs(array('rows' => 12, 'cols' => 79)); 
    $submit = new Zend_Form_Element_Submit('submit');
    $submit->setAttrib('id', 'submitbutton');
    $this->addElements(array($title, $info, $submit));
}

}
?>

然后可以從您的控制器中調用它,如下所示:

$form = new Form_CreateEmail();
        $form->submit->setLabel('Add');
        $this->view->form = $form;

並使用您的視圖顯示它

echo $this->form;

希望這可以幫助。

編輯:如果希望將此內容包含在每個頁面中,則可以創建一個新的幫助程序文件

在您的views文件夾中創建一個helpers文件夾並創建一個loginHelper.php文件

class Zend_View_Helper_LoginHelper
{
    function loginHelper()
    {

$form = new Form_CreateEmail();
        $form->submit->setLabel('Add');
        return = $form;

    }
}

可以使用以下命令從您的布局中輸出:

<?php echo $this->LoginHelper(); ?>     

在您的布局中,只需執行以下操作:

$form = new Loginform();
echo $form->render();

您只需要確保為表單的POST指定一個Controller / Action,這樣就不會將其POST到您當前使用的任何Controller,這是默認行為。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM