LINUX.ORG.RU

Динамически форма для ввода иерархических данных

 ,


1

1

Вкратце задача в том, что набить иерархическую структуру данных через обычные «юзер-понятные» формы

Изначально должна быть всего одна кнопка: «Добавить Банк»

При нажатии на «Добавить банк» под кнопкой должна появляться форма «Банка» с именем оного и кнопкой «Добавить площадку».

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

И т.д.

Т.е. суть в том, что формы: а) должны добавляться динамически; б) должны быть вложенными друг в друга (внутри формы банка можно добавить 10 площадок, в каждой из которых по 3 канала, например).

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

Собственно, сами по себе формы умеет любой фреймворк, а вот такой вариант, с динамическим добавлением форм и вложенностью оных - есть где-нибудь?

Спасибо!

★★★★★

Всё это есть в VanillaJS.
Научись уже наконец в него.

Goury ★★★★★
()

Почему-бы не взять какую-нить библиотеку, которая рисует деревья. Добавление/удаление элементов там есть. Форма может быть одна, заполняется при клике на элемент дерева.

pawnhearts ★★★★★
()

Собственно, сами по себе формы умеет любой фреймворк, а вот такой вариант, с динамическим добавлением форм и вложенностью оных - есть где-нибудь?

А почему бы и нет? Это даже в первом ангуляре делается элементарно. Ты же не рекурсию делаешь (вроде как), а просто вкладываешь один тип в другой. Тем более, что

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

в ангулярах — умолчально.

x3al ★★★★★
()
Ответ на: комментарий от pawnhearts

В принципе это неплохой вариант, тем более, что немало возился уже с jsTree...

Просто тыкать правой кнопкой - «Create element» - добавляем в дерево. Не хотелось так делать изначально из-за того, что большинство банков состоят из 1-й площадки с 2-мя каналами. Всю инфу по каналам можно было бы «плоско» запихнуть в саму форму площадки, без иерархических ухищрений.

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

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Почему бы не начать с написания собственно веб-браузера? Нафиг ваш JavaScript, поистине рулит объектно-ориентированный ассемблер!

DRVTiny ★★★★★
() автор топика

Чтобы память не жрало, для себя сделал в ангуляре разные route с передачей параметров через localstorage. Получилось необыкновенно годно + не теряются введенные данные при сбоях. Естественно, сторадж чистится при успешной отправке на сервер. Навигацию между формами, думаю, сам осилишь.

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от anonymous

Это лишние сущности в данном вопросе.

Shadow ★★★★★
()
Ответ на: комментарий от DRVTiny

Ничего сложного в описанном нет. Только зачем это в формах?

Shadow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.