26 июня 2015 г., 7:55

modx revo FormIt Ajax

Добрый день. Пытаюсь реализовать ajax отправку писем через FormIt, но что-то, где-то пропустил. При нажатии на submit нас перекидывает на страницу формы(index.php?id=2), хотя поидее мы должны оставаться на первой странице где открыта ajax форма… Код вызова
JS код
$(window).ready(function() { $('.ajax-form.call').on("click", function (e) { e.preventDefault(); $.ajax({ type: "POST", cache: false, url: this.href, data: $("#callback").serializeArray(), success: function (data) { $.fancybox(data, { }); // fancybox } // success }); // ajax }); // on //type: 'ajax', $(window).on('submit', 'form.popup-form', function(e){ var formData = $('form.popup-form').serialize(); console.log(formData); $.ajax({ url: '[[~2]]', data: formData, type: 'post', success: processServerResponse }) processServerResponse('
загрузка
'); e.preventDefault; return false; }); function processServerResponse(data) { $('form.popup-form').html(data); } });
Код страницы формы
Про подкат не забывайте.
Какой подкат, не совсем понял, точнее вообще не поля
У вас ссылка является ссылкой. Переход по ней — это нормально, учитывая, что в href= прописан адрес для перехода. Или пропишите href=«javascript:;», или в обработчике .on(«click»)… return false;
поменял сылку на такую
Но все равно, в открывшемся окне, при нажатии на «Заказать звонок» переадресовует на страницу формы на которой находится сама форма без ничего
На сколько я понимаю FormIt (сам его не юзаю) из коробки ajax не умеет… Надо писать надстройку… или не так?
Все верно. С чего бы это MODX-сущность (пхпшная) отрабатывалась на стороне браузера?
пока отложил formIt, начал делать через ajaxform
Можно через AjaxForm (который больше под это заточен). А можно и form-процессор из пакета modxSite взять и написать не сложный JS-код в несколько строк. Кому что больше нравится.
для данной задачи можно вообще обойтись без сниппетов
$('#btn-order').on('click', function(e){ e.preventDefault(); var $this = $(this); if ($orderForm.valid()){ $this.prop('disabled', true); var data = $orderForm.serialize(); $.ajax({ url: 'assets/components/modxsite/connectors/connector.php', method: 'post', data: data, success: function(data){ alert(data.message); } }) .done(function(){ var $modal = $orderForm.parents('.modal'); $modal.modal('hide'); $orderForm.trigger('reset'); }); $this.prop('disabled', false); } } );
данный js код отправляет запрос в файл. в моем случае коннектор в вашем это может обычный php файл который: 1. разберет данные посланные ajax 2. отправит их с помощь mail() 3. отправит ответ.
А можно и form-процессор из пакета modxSite
лучше

Добавить комментарий