Falcon Space - платформа для создания сайтов с личными кабинетами
Универсальная кнопка действия as_submit
Иногда есть потребность сделать 1 кнопку для выполнения некоего действия в системе.
Для этого можно использовать модальные формы (as-form-modal), но при этом будет выводиться дополнительное окно + необходимо создавать форму.
Более легкий вариант - использование кнопки as-submit (основан на механизме request js).
Разметка сниппета:
<a href="#" class="as-submit" data-code="t1" data-itemid="123" data-confirmtext="Вы уверены?" data-selector=".tooltip-toggle:first" data-needvalue="Укажите ФИО">Link1</a>
Параметры:
- code (обязательный) - служит для идентификации действия и является часть имени хранимой процедуры.
- itemID - некий строковый параметр.
- confirmText- если указан, то будет при клике на кнопку выводится окно подтверждения операции.
- selector - если указан, то осуществляется поиск этого элемента на странице и его значение помещается в параметр value.
- needValue - если указана строка, то при пустом value (что определяется посредством selector) будет выводиться alert с этой строкой.
На сервере реализуем хранимую процедуру request вида request_submit_{code}
Пример:
create OR ALTER PROCEDURE [dbo].[request_submit_t1]
@parameters ExtendedDictionaryParameter READONLY,
@username nvarchar(32)
AS
BEGIN
declare @itemID nvarchar(max) = (select value2 from @parameters where [key]='itemID')
declare @value nvarchar(max) = (select value2 from @parameters where [key]='value')
-- SELECT 1 Msg, Result
select 'Params: '+ isnull(@itemID, 'xx') + ' - ' + isnull(@value, 'xx') Msg, 1 Result
-- SELECT 2 Основные данные в виде произвольной таблицы
select 1
-- SELECT 3 Внешние действия
END
На входе из @parameters извлекаем itemID и value (значение контейнера или элемента управления из параметра selector разметки сниппета).
На выходе:
SELECT 1
- Result - Результат операции, 1 или 0,
- Msg - выводимое соощение в alert, если пустое или пробел, то не будет выводиться окно alert.
- Type - тип выводимого сообщения. Если не указан, то при result=1 будет success, и при result=0 будет danger,
- Actions - JSON для действий на клиенте после выполнения операции. Подробнее про actions.
SELECT 2 - некие данные в свободном виде. Их можно использовать в JS коллбеке операции.
SELECT 3 - внешние действия. См. про внешние действия.
Если нужна кастом обработка результата операции, то пробуем использовать actions. Если этого недостаточно, то делаем JS коллбек вида:
as.callbacks["submit_t1"]=function(btn, data){
}
где btn - исходная кнопка, data - данные от сервера после операции, t1 - это код(data-code) исходной кнопки.
Связанные статьи
— Как сделать форму в виде мастера шагов— Как показывать на форме прогресс заполнения (прогресс заполнения формы)
— Формы. Как сделать в форме более 1 кнопки действий (несколько кнопок действий на форме)
— Как сделать кнопку определенного действия
— Как сделать окно подтверждения действия формы
Google поиск по нашей документации
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта