2014-11-13 1 views
1

У меня есть форма с бирками, которые имеют зависимости с поля категорииValidate Аякса динамические поля Флажок (это значение не является допустимым)

Category 1 
    tag a 
    tag b 
    tag c 

Category 2 
    tag d 
    tag e 
    tag f 

... 

При загрузке страницы, у меня есть «Категория 1» и " список его тегов " Тогда, когда я сменил категорию на" Категория 2 ", я заменяю список тегов через ajax.

Когда я отправлю форму, я получаю «Это значение недействительно». Я предполагаю, что это связано с тем, что форма ожидает значения из исходного списка.

Итак, я не знаю, как продолжить, чтобы мои теги были подтверждены.

Вот код, который генерирует форму

->add('category', null, array(
    'choices' => $this->cat_tree, 
    'label' => 'Category', 
    'required' => true, 
    'empty_value' => '', 
)) 
->add('tags', 'entity', array(
    'class' => 'MyappServicesBundle:Category', 
    'query_builder' => function(EntityRepository $er) use ($parent_id) { 
     return $er->createQueryBuilder('c') 
      ->where('c.parent = :parent_id') 
      ->setParameter('parent_id', $parent_id) 
      ->orderBy('c.title', 'ASC'); 
    }, 
    'required' => false, 
    'multiple' => true, 
    'expanded' => true, 
    'label' => 'Tags', 
)) 

А вот код Аякса, который замените теги

$('#myapp_servicesbundle_category').change(function() { 
    $.post( 
     "/tag/ajax/search", 
     { parent_id: $(this).val() }, 
     function(data) { 
      var newtags = ''; 
      jQuery.each(data, function(i, val) {   
       newtags += ' <input type="checkbox" value="'+val.id+'" name="myapp_servicesbundle[tags][]" id="myapp_servicesbundle_tags_'+val.id+'">'; 
       newtags += ' <label for="myapp_servicesbundle_tags_'+val.id+'">'+val.label+'</label>'; 
      }); 
      $('#myapp_servicesbundle_tags').html(newtags);    
     }, "json" 
    ); 
}); 

Заранее спасибо за помощь

ответ

1

из моего опыта вы должны использовать eventListener в Symfony. В Доке есть довольно ясный пример (более подробно на английском, чем на французском, будьте осторожны).

http://symfony.com/doc/current/cookbook/form/dynamic_form_modification.html#cookbook-form-events-submitted-data

+0

Спасибо! Я буду внимательно смотреть на него, и я дам вам знать –

+1

Большое вам спасибо! Оно работает :) –

 Смежные вопросы

  • Нет связанных вопросов^_^