Zend_Form前置元素

时间:2010-02-23 22:06:20

标签: php zend-framework

我可以在这样的表单中添加一个元素:

$form->addElement($element);

但是,这会将元素放在表单的末尾,我想添加一个元素(把它放在表单的开头)。

为什么呢?表单具有动态生成的字段(文本字段的数量及其标签是根据请求中的参数生成的),因此表单类如下所示:

class Form1 extends Zend_Form
{

    public function init()
    {
        $this->setMethod('post');

        $submit = new Zend_Form_Element_Submit('submit1', array(
            'label' => 'Submit',
            'class' => 'input-submit'
        ));

        $this->addElements(array(
            $submit
        ));
    }
}

只有提交按钮,因为我不知道有多少文本字段以及有什么标签。

1 个答案:

答案 0 :(得分:4)

来自ZF manual on Zend_Form Metadata and Attributes

  

Zend_Form_Element处理各种属性和元素元数据。基本属性包括:

     
      
  • order:元素应在表单中出现的索引。使用 setOrder() getOrder() 访问者。
  •   

因此,您可以将按钮设置为非常高的订单号,例如1000然后添加以订单号1开头的动态元素(或任何低于按钮订单号的数字)。

但是,当根本没有表单中的按钮时,为什么不立即创建整个表单并在完成请求中的元素附加后附加提交按钮。