Вебформы на ajax xslt
Сейчас мы в несколько довольно несложных действий заставим нашу вебформу, добавленную с помощью модуля обратная связь работать без перезагрузки страницы. В этом нам поможет jquery плагин Form. Для начала открываем шаблон, где размещается шапка необходимой нам страницы и между тэгами head, в самом низу добавляем строчки
<!-- ajax jquery Forms -->
<script src="http://malsup.github.com/jquery.form.js" type="text/javascript"></script>
<!-- end ajax jquery forms -->
Внимание строчка обязательно должна быть ниже макроса
<xsl:value-of select="document('udata://system/includeQuickEditJs')/udata" disable-output-escaping="yes" />
Всё, с шапкой закончили, так как сам jquery у нас уже подключен, макросами
%system includeQuickEditJs()%
%system includeEditInPlaceJs()%
Теперь переходим к шаблону вебформ. Открываем его.(если вы ничего не меняли, то он находиться по адресу /tpls/data/reflection/webforms.tpl) и имеющийся код
<form enctype="multipart/form-data" method="post" action="%pre_lang%/webforms/send/">
<input type="hidden" name="system_form_id" value="%form_id%" />
<input type="hidden" name="system_template" value="%template%" />
<input type="hidden" value="%pre_lang%/webforms/posted/" name="ref_onsuccess">
%address_select%
%groups%
</form>
заменяем на вот такой
<form id="umi_the_best" enctype="multipart/form-data" method="post" action="%pre_lang%/webforms/send/">
<input type="hidden" name="system_form_id" value="%form_id%" />
<input type="hidden" name="system_template" value="%template%" />
<input type="hidden" value="%pre_lang%/webforms/posted/" name="ref_onsuccess">
%address_select%
%groups%
</form>
<script type="text/javascript">
$(document).ready(function(){
$("#umi_the_best").ajaxForm(function() {
alert("Спасибо за ваш отзыв!");
});
});
</script>
Всё, теперь форма у нас работает без перезагрузки страницы.
Внимание, работа данного метода проверена на версии 2.8.5.3, если ваша версия ниже, работа этого метода не гарантирована.