<?php if ($modx->event->name == 'OnLoadWebDocument') { if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { $modx->resource->set('cacheable', 0); $modx->resource->set('template', 0); } }
<div id="feedback_form"> <h2> </h2> [[!request? &k=`success` &toPlaceholder=`success`]] [[+success:is=``:then=` [[!FormIt? &hooks=`email,redirect` &redirectTo=`[[*id]]` &redirectParams=`{"success":"1"}` &emailTpl=`feedbackEmailTpl` &emailSubject=` [[++site_name]]` &emailTo=`info@unicontent-studio.ru` &emailFrom=`noreply@unicontent-studio.ru` &emailFromName=`[[++site_name]]` &validate=` name:required:stripTags, email:email:required, message:required:stripTags ` &clearFieldsOnSuccess=`1` &validationErrorMessage=` .` ]] <form data-target="#feedback_form" class="ajax-form" action="[[~[[*id]]]]" method="POST"> <div> <label>:</label> <input type="text" value="[[!+fi.name]]" name="name" /> [[!+fi.error.name]] </div> <div> <label>E-mail:</label> <input type="text" value="[[!+fi.email]]" name="email" /> [[!+fi.error.email]] </div> <div> <label>:</label> <textarea name="message">[[!+fi.message]]</textarea> [[!+fi.error.message]] </div> <input type="submit" name="submit" value="" /> </form> `:else=` <p> .</p> `]] </div>
<?php $result = isset($_REQUEST[$k])? strip_tags($_REQUEST[$k]) : ''; if (!empty($toPlaceholder)) { $modx->toPlaceholder($toPlaceholder, $result); } else { return $result; }
$(document).ready(function() { $('body').on('submit', '.ajax-form', function(e) { e.preventDefault(); var target = this; if ($(this).data('target') != undefined) { target = $(this).data('target'); } values = $(this).serializeArray(); $(this).find('input[type="submit"]').attr('disabled', 'disabled'); $.ajax({ type: 'POST', dataType: 'html', url: $(this).attr('action'), data: values, success: function(data) { $(target).replaceWith(data); } }); }); });
Source: https://habr.com/ru/post/212345/
All Articles