Форма с последовательными действиями (несколько отправок форм)
Логика формы:
- Если 3 и меньше, то показ "что можно улучшить" и стоп.
- Если больше 3, то показ "что именно понравилось".
- После сохранения что понравилось - показ какого то предложения и стоп.
Данная форма показывает процесс заполнения формы с промежуточными отправками данных на сервер и показом разных полей формы в зависимости от заполнения.
Какая логика заложена в примере:
Юзер выбирает оценку (act1), отправляет форму
Если если она меньше 3, то показывается показывается часть формы ("что можно улучшить") и потом конечная отправка формы (ac2).
Если больше трех, то показывается часть формы ("что понравилось") и отправка формы (ac3) - это показывает доп часть формы и какое то предложение + отправку формы (ac4).
Таким образом можно реализовать форму с последовательным сохранением данных + показом различных наборов полей в зависимости от ввода пользователя.
Как реализовано:
- за счет кнопок отправки с type
- использование actions с add/removeClass hide на контейнерах.
В GetItem все стандартно.
Разметка формы:
{form-title}
{form-subtitle}{form-subtitle}
<div class=" s1">
{colwithlabel-s1}
<a href="#" class="as-form-submit btn btn-primary" data-type="ac1">ОК ac1</a>
</div>
<div class="hide s11">
{colwithlabel-s11}
<a href="#" class="as-form-submit btn btn-success" data-type="ac2">ОК ac2</a>
</div>
<div class="hide s12">
{colwithlabel-s12}
<a href="#" class="as-form-submit btn btn-warning" data-type="ac3">ОК ac3</a>
</div>
<div class="hide s121">
{colwithlabel-s12}
<a href="#" class="as-form-submit btn btn-warning" data-type="ac4">ОК ac4</a>
</div>
Показан только первый контейнер, остальные скрыты. У каждого контейнера своя кнопка с data-type.
SaveItem формы:
CREATE PROCEDURE [dbo].[fm_watch_stepactions_saveItem]
@username nvarchar(256),
@itemID int,
@parameters ExtendedDictionaryParameter readonly
AS
BEGIN
-- все поля что есть на форме
declare @ps1 int
select @ps1 = try_cast(Value2 as int) from @parameters where [key]='s1'
declare @ps11 nvarchar(max)
select @ps11 = Value2 from @parameters where [key]='s11'
declare @ps12 nvarchar(max)
select @ps12 = Value2 from @parameters where [key]='s12'
declare @ps121 nvarchar(max)
select @ps121 = Value2 from @parameters where [key]='s121'
declare @buttonType nvarchar(max) = isnull((select value2 from @parameters where [Key] = 'buttonType'), '')
if(@buttonType='ac1') begin -- первое действие
if(@ps1>3) begin
-- SELECT 1
select 1 Result, 'Перое действие выполнилось и показан блок при оценке выше 3' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer, 1 EnableSaveAlert,
'
[{
removeClass: {selector:".s11", class:"hide"},
addClass: {selector:".s1", class:"hide"},
}]
' actions
end else begin
-- SELECT 1
select 1 Result, 'Перое действие выполнилось и показан блок при оценке ниже 4' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer, 1 EnableSaveAlert,
'
[{
removeClass: {selector:".s12", class:"hide"},
addClass: {selector:".s1", class:"hide"},
}]
' actions
end
return
end
if(@buttonType='ac2') begin -- второе действие
-- SELECT 1
select 1 Result, 'Все сохранено (ac2) ' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer, 1 EnableSaveAlert,
'
[{
addClass: {selector:".s11", class:"hide"},
}]
' actions
return
end
if(@buttonType='ac3') begin -- третье действие - еще показываем поля для связи.
-- SELECT 1
select 1 Result, 'Показываем еще поля при варианте когда юзер написал текст и оценке >3 (ac3)' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer, 1 EnableSaveAlert,
'
[{
removeClass: {selector:".s121", class:"hide"},
addClass: {selector:".s12", class:"hide"},
}]
' actions
return
end
if(@buttonType='ac4') begin -- четвертое действие - сохраняем форму с контактом
-- SELECT 1
select 1 Result, 'Все сохранено (ac4) ' Msg, '' SuccessUrl, 0 HideFormAfterSubmit, '' RefreshContainer, 1 EnableSaveAlert,
'
[{
addClass: {selector:".s11", class:"hide"},
}]
' actions
return
end
select 0 Result, 'Выбрано невалидное действие' Msg
END
Последние обновления
Форма 11.10.2026
Разное 06.10.2026
19.08.2026
Форма 16.07.2026
Форма 01.06.2026
Визуализация 26.05.2026
Страницы 04.04.2026
Форма 26.03.2026
Форма 24.02.2026
05.02.2026
Форма 25.01.2026
Форма 12.12.2025
Интеграции 24.11.2025
Разное 24.11.2025
Форма 15.11.2025
Визуализация 02.11.2025
Таблица 08.10.2025
Форма 26.09.2025
Платформа Falcon Space
Это снижение стоимости владения
за счет меньшего количества людей для поддержки
Это быстрое внесение изменений
по ходу эксплуатации программы
Это современный интерфейс
полная адаптация под мобильные устройства