Jquery CollectionTypes和事件侦听器Symfony 2.8

Jquery CollectionTypes和事件侦听器Symfony 2.8,jquery,ajax,symfony,symfony-forms,Jquery,Ajax,Symfony,Symfony Forms,我有一个字段列表,每个字段都可以是“选择”或“单选”按钮类型 所以我有一个collectionType ProductOptions,集合的每个元素都是一个OptionGroup,结果是一个entityType optionGroup.name:选择(optionElements) optionGroup.name:收音机(可选元件) 一个OptionGroup(entityType)的optionElements使用POST_set_数据进行设置 我现在想做的是,当第一个entityTy

我有一个字段列表,每个字段都可以是“选择”或“单选”按钮类型

所以我有一个collectionType ProductOptions,集合的每个元素都是一个OptionGroup,结果是一个entityType

  • optionGroup.name:选择(optionElements)
  • optionGroup.name:收音机(可选元件)
一个OptionGroup(entityType)的optionElements使用POST_set_数据进行设置

我现在想做的是,当第一个entityType被更改时,第二个entityType将用optionElements(使用ajax)归档,以此类推

如果我们填写了5个entityTypes,并更改了第一个entityTypes,那么接下来的4个entityTypes将被删除(例如在jquery中隐藏)

如何做到这一点? 先谢谢你

   public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder
    ->add('productOptionGroups', CollectionType::class, array(
        'entry_type' => ProductOptionGroupType::class,
        'label' => false,
        'required' => true,
    ));
}
和选项组

    public function buildForm(FormBuilderInterface $builder, array $options) {
    $builder->addEventListener(FormEvents::POST_SET_DATA, function ($event) {
        $builder = $event->getForm();
        $entity = $event->getData();
        $optionGroup = $entity->getOptionGroup();
        $optionType = $optionGroup->getOptionType();
        $elements = $entity->getOptionElements(); // or a query builder

        if($optionType == OptionGroup::OPTIONGROUP_TYPE_SELECT){
        $builder
        ->add('elements', EntityType::class, array(
            'class' => 'AnaShopBundle:OptionElement',
            'choices' => $elements,
            'label' => $optionGroup,
            'required' => true,
            'property' => 'name',
            'mapped' => false,

        ));
        } elseif ($optionType == OptionGroup::OPTIONGROUP_TYPE_RADIO) {
            $builder
            ->add('elements', EntityType::class, array(
                'class' => 'AnaShopBundle:OptionElement',
                'choices' => $elements,
                'label' => $optionGroup,
                'expanded' => true,
                'required' => true,
                'property' => 'name',
                'mapped' => false,
            ));
        } 

    });
}

你需要添加客户端代码尝试(ajax等)来编辑你的问题。我还没有客户端的ajax,因为我不知道如何解决这个问题。你需要添加客户端代码尝试(ajax等)来编辑你的问题。我还没有客户端的ajax,因为我不知道如何解决这个问题。