Перезагружается форма на AjaxForm

Проблема: форма отправки письма (на FormIt, через AjaxForm) отправляет письмо без перезагрузки только пока ты на странице, при этом в лог сыпется:

[2016-01-07 14:53:58] (ERROR @ /var/www/site.my/public_html/core/cache/includes/elements/modsnippet/20.include.cache.php: 48) PHP warning: Illegal string offset 'total'
[2016-01-07 14:53:58] (ERROR @ /var/www/site.my/public_html/core/cache/includes/elements/modsnippet/20.include.cache.php: 48) PHP warning: Illegal string offset 'total'

Если со страницы на которой находиться форма ушел и вернулся через пару дней, то при попытке отправить форму происходит перезагруз страницы, а в логе пусто.
Так происходит не зависимо кастомная форма или стандартная. Поправить это можно лишь очисткой кеша в ручную.

Вот вызов:
[[!AjaxForm?
    	&snippet=`FormIt`
    	&form=`tpl.AjaxForm.contacts`
    	&hooks=`email`
    	
    	&emailSubject=`с сайта YURVICE`
    	&emailTo=`yurchikus@gmail.com`
    	&emailFromName=`[[+name]]`
    	&emailTpl=`tpl.email-contacts2`
    	
    	&validate=`name2:required,email2:required,message2:required`
    	&validationErrorMessage=`В форме содержатся ошибки!`
    	&successMessage=`Сообщение успешно отправлено`
    ]]

И форма:
<form action="" method="post" class="ajax_form">

	<div class="form-group">
    <label for="af_name" class="col-md-3 col-sm-3 col-xs-12 control-label">[[%af_label_name]]</label>
    <div class="input-group col-md-9 col-sm-9 col-xs-12">
      <input type="text" class="form-control" id="af_name" name="name2" value="[[+fi.name]]" placeholder="[[%af_label_name]]">
    </div>
  </div>
  
  <div class="form-group">
    <label for="af_email" class="col-md-3 col-sm-3 col-xs-12 control-label">[[%af_label_email]]</label>
    <div class="input-group col-md-9 col-sm-9 col-xs-12">
      <input type="email" class="form-control" id="af_email" name="email2" value="[[+fi.email]]" placeholder="[[%af_label_email]]">
    </div>
  </div>

	<div class="form-group">
		<label class="col-md-3 col-sm-3 col-xs-12 control-label" for="af_message">[[%af_label_message]]</label>
		<div class="input-group col-md-9 col-sm-9 col-xs-12">
		  <textarea class="form-control" id="af_message" name="message2" rows="3" placeholder="[[%af_label_message]]">[[+fi.message]]</textarea>
		</div>
	</div>

	<div class="control-group">
		<div class="controls buttons-group">
			<button type="submit"  class="btn btn-transparent btn-sub pull-right"><i class="fa fa-share"></i> [[%af_submit]]</button>
			<input type="hidden" name="two">
		</div>
	</div>
	
	[[+fi.success:is=`1`:then=`
		<div id="form-2" class="alert alert-success">[[+fi.successMessage]]</div>
	`]]
	[[+fi.validation_error:is=`1`:then=`
		<div id="form-2" class="alert alert-danger">[[+fi.validation_error_message]]</div>
	`]]
</form>
В чем может быть проблема и как это победить? Спасибо за участие.
Юрий Фомин
07 января 2016, 12:59
modx.pro
2 778
0

Комментарии: 5

Григорий Коленько
07 января 2016, 17:17
0
Сталкивался с подобным. Только форма просто зависает и ничего не отправляет. Так и не разобрался в чем дело. Установил в настройках меньшее время хранения кэша, и проблемы больше не замечал
    Юрий Фомин
    08 января 2016, 08:24
    0
    Григорий спасибо. Отключил частичное кэширование ресурсов, форма начала исправно работать, но в логи так и сыпется вышеуказанная ошибка, притом уже просто при перезагрузке страницы. Буду искать дальше.
    Сергей Шлоков
    08 января 2016, 09:47
    0
    В ошибке написано про сниппет 20. Что это за сниппет и что у него в 48 строчке?
      Юрий Фомин
      08 января 2016, 10:15
      0
      снипет — Gallery
      48: $modx->setPlaceholder($totalVar,$data['total']);

      В снипетах ничего не менялось, возможно сервер. Сайт лежит на бесплатном (жутком) хосте. Возможно, где то ошибся в настройках, но это уже второй вопрос, главное с формой разобрались.
      Всем большое спасибо!
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    5