2

私はかなり前からこの問題を探していました。さて、symfony2 で小枝にフォームを動的にロードします。以下にコードを示します。

class NewsType extends AbstractType
{   
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $formFactory = $builder->getFormFactory();

        $builder
            ->add('title')
            ->add('body')
            ->add('userType', 'choice', array(
            'choices' => array (
              'CT' => 'Contract',
              'PT' => 'Permanent',),))
            ->add('Save', 'submit')   
                 ->getForm()
        ;

        $builder->addEventListener(
        FormEvents::POST_BIND,
        function (FormEvent $event) use ($formFactory) {


            var_dump($event);

            $choices = array("key1" => "value1", "key2" => "value2");

            $event->getForm()->add(
              $formFactory->createNamed("my_dynamic_field_name", "choice", null, array(
                        "empty_value" => "Choose an option",
                        "auto_initialize" => false,
                        "label" => "My dynamic field: ",
                        "choices" => $choices
                    )
                )
            );


        }
        );
  }

    public function getName()
    {
        return 'remove_form_field';
    }

    // ...
}

私が達成したいのは、「userType」ドロップダウン値が選択されたときに、イベントがトリガーされて「my_dynamic_field_name」ドロップダウンがロードされることです。どうすればこれを達成できますか? (これは [送信] ボタンを使用しない場合であり、ユーザーがドロップダウンから値を選択すると、他のドロップダウンが入力されます)

4

0 に答える 0