2013-07-30 3 views
0

Я реализовал поле автозаполнения в своей форме с помощью sonata admin.Добавить кнопку в сонате admin clear jQuery на sonata_type_collection: sonata-collection-item-added

В этой форме (ScheduleAdmin) есть коллекция игр (GamesAdmin).

Моя проблема в том, что я не могу использовать jQuery. Фактически, когда добавлена ​​новая форма типа Games, мой jQuery не запускается.

Но когда я изменить расписание игр, который имел мое автозаполнение поле работает ... только первый один

EDIT:

Там нет никакого способа, чтобы использовать этот наконечник:

TIP : Событие jQuery запускается после добавления строки (соната-коллекция-элемент) или удаляется (соната-коллекция-элемент-исключена). Вы можете связать эти события, чтобы вызвать пользовательские Javascript импортированы в шаблоны (например: добавить виджет календаря недавно добавленное поле даты)

Source

Я нуб в JQuery, и я не знаю, как связать этот элемент.

Кому-то может помочь?

Спасибо!

ответ

0

У меня была та же проблема.

Я исправлю его с помощью GenumFormBundle.

Установите его с композитором как: composer.json

{ 
    "require": { 
     "_some_packages": "...", 

     "genemu/form-bundle": "2.1.*" => for Symfony 2.1 and 2.2 

     "genemu/form-bundle": "2.2.*" => for Symfony 2.3 
    } 
} 

Не забудьте добавить сверток в AppKernel.php и пробеге в assetic команду:

$ php app/console assets:install web/ 

После этого вы можете использовать его в классе администратора с:

protected function configureFormFields(FormMapper $formMapper) 
{  
// ... 
    $formMapper 
     ->with('General') 
      ->add('sample_choice', 'genemu_jqueryautocompleter_choice', array(
        'choices' => array(
         'Choice 1' => 'Choice 1', 
         'Choice 2' => 'Choice 2', 
         'n.a.' => 'Not available' 
        ))) 

См. Документацию, в которой имеются типы полей автозаполнения. Вы также можете выбрать объект. Но обратите внимание, что возвращается только идентификатор записи базы данных в форме, а не значение!

Использование в фильтровальной модуса:

protected function configureDatagridFilters(DatagridMapper $datagridMapper) 
{ 
    $datagridMapper 
    // ... 
     ->add('customer', null, array(), 'genemu_jqueryautocompleter_entity') 
    // ... 

Примечание: Вы должны добавить следующую строку в макете:

{{ form_stylesheet(form) }} 
and 
{{ form_javascript(form) }} 
+0

Спасибо за ответ! Я пытался использовать genemuFormBundle, но кажется, что он не работает ... Существует определенная настройка шаблона для сонаты и genemu? –

+0

Хм, я не уверен, но по умолчанию опция должна быть доступна, если пакет genemu загружен правильно. Примечание: он не работает в всплывающем окне ajax. Кажется, что есть проблема при загрузке необходимых файлов заголовков или в конфликте с другими jquery-библиотеками. – sensi

+0

Смотрите мое обновление выше.Вы должны добавить {{form_stylesheet (form)}} и {{form_javascript (form)}} в свой основной файл ветви макета. – sensi