Symfony Forms — динамически добавлять/удалять поля в зависимости от выбораPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Symfony Forms — динамически добавлять/удалять поля в зависимости от выбора

Сообщение Anonymous »

Я пытаюсь создать форму, которая сопоставляется с сущностью типа «Участник». Участник находится в отношениях один на один с «человеком». Добавляя участника, я хочу сначала предоставить возможность выбрать человека, который уже есть в базе данных, и, если подходящего человека не существует, создать этого человека с помощью формы участника.

Это работает, если я делаю это с двумя страницами/формами. Первый пытается выбрать существующего человека, в противном случае откройте новую страницу с другой формой.
Первая страница:

Код: Выделить всё

$form->add('person', AjaxEntityType, [ // EntityType but with select2 ajax
'class' => Person::class,
'remote_route' => 'person_ajax_list'
]);
Вторая страница:

Код: Выделить всё

$participant->setPerson(new Person());
$form->add('person', PersonType::class);
// adds PersonType fields to the Participant form
Ну, это работает, но это ужасно медленно и ненужно. Я бы предпочел, чтобы ОБА из них отображались, где поля формы PersonType (имя, фамилия, должность, компания, адрес и т. д.) автоматически заполняются данными о людях, если они выбраны. В противном случае, если ни одно лицо не выбрано и форма отправлена ​​с введенными данными, новое лицо должно быть создано и сохранено в базе данных.

К сожалению, невозможно отобразить «person» дважды: один раз в виде раскрывающегося списка и один раз в виде формы PersonType. Так как же мне добиться того, чего я хочу, без нереального количества JavaScript?

Моим текущим решением было бы вручную создать все необходимые поля с помощью JavaScript и заполнить их данные о человеке, которые я получу с помощью другого запроса Ajax в событии onchange в раскрывающемся списке «человек», затем в событии PRE_SUBMIT формы удалите поле «человек» и добавьте его снова как поле PersonType, проверьте, соответствуют ли введенные данные существующему человеку или новому, а затем действовать соответственно. Должно быть лучшее решение, не так ли?

К сожалению, в противном случае события формы оказались в основном бессмысленными, поскольку невозможно присоединить прослушиватель событий к событию «изменение» на одно из полей.

Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/557 ... on-choices
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как я могу динамически добавлять и удалять поля?
    Anonymous » » в форуме Python
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как динамически обновлять графики (добавлять/удалять ребра) в cuGraph с помощью C++?
    Anonymous » » в форуме C++
    0 Ответы
    61 Просмотры
    Последнее сообщение Anonymous
  • Как динамически добавлять и удалять несколько форм для одной и той же модели в ASP.NET MVC?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Как динамически добавлять и удалять несколько форм для одной и той же модели в ASP.NET MVC?
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Динамическая форма потока: динамически добавить и удалять поля
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»