Добрый вечер! Сегодня будет небольшой совет о том как реализовать ajax веб-форму без лишних хлопот средствами Битрикс. Если взглянуть на документацию этого компонента то можно увидеть что об ajax там не сказано ни слова, также нету ничего такого в настройках компонента, но тем не менее он поддерживает ajax =)
Чуть ниже рассказываю поподробнее:
Стандартный вызов компонента происходит примерно так:
<?php
//...
$APPLICATION->IncludeComponent("bitrix:form.result.new", "", array(
"SEF_MODE" => "Y",
"WEB_FORM_ID" => "$_REQUEST['WEB_FORM_ID']",
"LIST_URL" => "result_list.php",
"EDIT_URL" => "result_edit.php",
"SUCCESS_URL" => "",
"CHAIN_ITEM_TEXT" => "",
"CHAIN_ITEM_LINK" => "",
"IGNORE_CUSTOM_TEMPLATE" => "Y",
"USE_EXTENDED_ERRORS" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"SEF_FOLDER" => "/",
"VARIABLE_ALIASES" => array()
)
);?>
Для включения ajax нам нужно добавить вот эти параметры:
<?php
//...
"AJAX_MODE" => "Y", // режим AJAX
"AJAX_OPTION_SHADOW" => "N", // затемнять область
"AJAX_OPTION_JUMP" => "Y", // скроллить страницу до компонента
"AJAX_OPTION_STYLE" => "Y", // подключать стили
"AJAX_OPTION_HISTORY" => "N",
В итоге примерно получается вот так:
<?php
$APPLICATION->IncludeComponent("bitrix:form.result.new", "", array(
"SEF_MODE" => "Y",
"WEB_FORM_ID" => "$_REQUEST['WEB_FORM_ID']",
"LIST_URL" => "result_list.php",
"EDIT_URL" => "result_edit.php",
"SUCCESS_URL" => "",
"AJAX_MODE" => "Y", // режим AJAX
"AJAX_OPTION_SHADOW" => "N", // затемнять область
"AJAX_OPTION_JUMP" => "Y", // скроллить страницу до компонента
"AJAX_OPTION_STYLE" => "Y", // подключать стили
"AJAX_OPTION_HISTORY" => "N",
"CHAIN_ITEM_TEXT" => "",
"CHAIN_ITEM_LINK" => "",
"IGNORE_CUSTOM_TEMPLATE" => "Y",
"USE_EXTENDED_ERRORS" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"SEF_FOLDER" => "/",
"VARIABLE_ALIASES" => array()
)
);?>
Для одного из проектов мы вызывали данный компонент в скрытом div-контейнере который отображался при клике на кнопку. Полагаю что это самый простой вариант реализации всплывающей ajax веб-формы в CMS Битрикс.
- Вперед
- Назад