Поздравляю! Вы попали в архивный блог! Все новые материалы публикуются на hmdw.meX
Просмотров: 9924

bitrix:form.result.new и ajax

Добрый вечер!

Сегодня будет небольшой совет о том как реализовать ajax веб-форму без лишних хлопот средствами Битрикс.

Если взглянуть на документацию этого компонента то можно увидеть что об ajax там не сказано ни слова, также нету ничего такого в настройках компонента, но тем не менее он поддерживает ajax =)

Чуть ниже рассказываю поподробнее:

Стандартный вызов компонента происходит примерно так:

<?$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 нам нужно добавить вот эти параметры:

"AJAX_MODE" => "Y",  // режим AJAX
  "AJAX_OPTION_SHADOW" => "N", // затемнять область
  "AJAX_OPTION_JUMP" => "Y", // скроллить страницу до компонента
  "AJAX_OPTION_STYLE" => "Y", // подключать стили
  "AJAX_OPTION_HISTORY" => "N",

В итоге примерно получается вот так:

<?$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 Битрикс.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru livejournal.ru yandex.ru
Эта запись опубликована: Среда, 17 апреля 2013 в рубрике Web-разработка.

Оставьте комментарий!