Как сделать добавление / удаление поля в форме по ajax в группе однотипных полей

Главные вкладки

Аватар пользователя engenes engenes 14 июня 2020 в 22:41

Изучаю form api drupal8.
Хочу решить задачу, добавления удаления однотипных полей.

В например несколько цветов, несколько размеров. Да знаю что есть типы материалов, и там это легко настраивается, но мне нужно понять как работать с form api

Столкнулся с проблемой, что после удаления одного поля из группы, удаляется не текущий элемент, а последний в массиве.

Посмотрел, из чего формируется группа полей, всегда это правильным массив данных, то есть тот который мне нужен.

Например, если группа полей сформирована из массива [12:22,false,false, 15:33],
то это значит, что у меня выведутся 4 поля 1 и 4 будут заполнены,
а после того, как я удаляю 2 элемент из массива,
он выглядит так: [12:22,false, 15:33],
но в полях выводятся данные, как будто они сформированы из такого массива [12:22,false, false],
хотя я проверил и распечатал его непосредственно пред сборкой группы.

вот наглядный пример это моя группа полей из которой я хочу удалить третий элемент

а вот как она выглядит после удаления

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

сам код не смог разместить тут, нарушается форматирование
но вот прямая ссылка не действующий пример, подписал каждую строку, чтобы было понятно, что я написал. https://github.com/engenes/formapi/blob/master/formapi.php

Пожалуйста, подскажите, если есть у кого опыт, с аяксификации форм на drupal8, если будут вопросы, напишите я поясню, мне важно понять как это работает. Столько вариантов перебрал, и вот уже близко к тому что надо, но с удалением просто тупик.
Вижу, что достаточно простая часть осталась, возможно еще какой то готовый метод или прием для этого есть.