【问题标题】:Zend form create dynamically added elementsZend 表单创建动态添加的元素
【发布时间】:2014-10-20 09:41:37
【问题描述】:

我是 Zend 框架的新手,我想做的是创建一个表单,除了简单的输入和选择字段之外,它还将包含使用 jquery 添加多个输入字段,例如:

和另一个可以接受多对选择和输入的表单元素,如下所示:

这些将使用 jquery 在客户端插入。我如何在 Zend 中使用表单元素来实现这一点?

【问题讨论】:

    标签: jquery forms zend-framework dynamic subform


    【解决方案1】:

    我已经完成了您在某些项目中想要实现的目标,而我发现的最佳方法是使用子表单。以下是一些可能对您有所帮助的指南。

    配置父表单

    public function __construct($wine = null)
    {
        parent::__construct();
    
        $this->setName('parent-form'); // you can set any name
        $this->setIsArray(true);
        $this->_initForm();
    }
    

    在表单中添加尽可能多的子表单

    protected function _initForm(){
        $this->clearSubForms();
        $subForm = new Application_Form_Subform(1);
        $subForm->removeDecorator('Form');
        $this->addSubform($subForm,'subform-'.1);
    
        $subForm = new Application_Form_Subform(2);
        $subForm->removeDecorator('Form');
        $this->addSubform($subForm,'subform-'.2);
    }
    

    配置子表单

    public function __construct($key) {
        parent::__construct();
        $this->setElementsBelongTo("parentform[subform][$key]");
        $this->setIsArray(true)->setName("subform")->setAttrib('enctype', 'multipart/form-data');
    
        $this->_initForm();
    }
    

    在表单视图中回显子表单

    <?php
        foreach($this->element->getSubforms() as $key => $subForm){
            echo $subForm;
        }
    ?>
    

    使用 Jquery 在表单视图上动态添加元素

    我不会在这里提供任何代码。但我通常做的是为子表单添加一个隐藏模板,以便我可以从中克隆。您还需要做的是调整子表单输入的名称属性的索引。

    获取控制器上的数据

    if ($request->isPost()) {
    
        $data = $request->getPost('parentform');
    
        if ($form->isValid($data)) {
            foreach ($data['subform'] as $subformInfo) { // loop through each subform input
              // do something with your data
            }
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      相关资源
      最近更新 更多