使用Zend_Form动态字段

时间:2013-11-25 14:13:20

标签: php zend-framework2

我想将带有JQuery的新字段附加到表单并将其发送到Zend_Form我的代码现在是:

字段结构类:

<?php

namespace Companies\Form;

use Companies\Entity\Address;
use Zend\Form\Fieldset;
use Zend\InputFilter\InputFilterProviderInterface;
use Zend\Stdlib\Hydrator\ClassMethods as ClassMethodsHydrator;

class AddressField {

    /**
     * @var string
      \ */
    protected $name;

    /**
     * @param string $name
     * @return Address
      \ */
    public function setName($name) {
        $this->name = $name;
        return $this;
    }

    /**
     * @return string
      \ */
    public function getName() {
        return $this->name;
    }

}

class AddressFieldset extends Fieldset implements InputFilterProviderInterface {

    public function __construct() {
        parent::__construct('Address');
        $this->setHydrator(new ClassMethodsHydrator(false))->setObject(new AddressField());

        $this->add(array(
            'name' => 'name',
            'options' => array(
                'label' => 'Address'
            )
        ));
    }

    /**
     * @return array
      \ */
    public function getInputFilterSpecification() {
        return array(
            'name' => array(
                'required' => true,
            )
        );
    }

}

该领域的模型:

$this->add(array(
    'type' => 'Zend\Form\Element\Collection',
    'name' => 'Address',
    'options' => array(
        'count' => 1,
        'should_create_template' => false,
        'allow_add' => false,
        'template_placeholder' => '__placeholder__',
        'target_element' => array(
            'type' => 'Companies\Form\AddressFieldset'
        )
    )
));

我使用JQuery创建新字段,如何在表单提交后收到新字段?

我从这里得到了这个想法: http://zf2.readthedocs.org/en/release-2.1.5/modules/zend.form.collections.html#adding-new-elements-dynamically

0 个答案:

没有答案