Всего 123 798 комментариев

Константин
19 сентября 2023, 14:13
0
Здравствуйте, пробую заменить AjaxForm на FetchIt, почему-то не срабатывает хук FormItSaveForm. Письма в админке не сохраняются. Вывожу так:
[[!FetchIt?
  &snippet=`FormIt`
  &form=`contactFormTpl`
  &hooks=`spam,FormItSaveForm,email`
  &formName=`Рассчитать стоимость здания`
  &emailSubject=`Тема письма`
  &emailTo=`[[++emailsender]]`
  &emailFrom=`no-reply@rmse.ru`
  &validate=`nospam:blank,name:minLength=^2^,phone:phone:required`
  &validationErrorMessage=`В форме содержатся ошибки!`
  &successMessage=`Сообщение успешно отправлено`
  &phone.vTextRequired=`На какой номер телефона Вам перезвонить?`
  &name.vTextRequired=`Укажите Ваше имя`
  &fieldNames=`name==Имя,phone==Телефон,pageurl==Страница отправки,message==Сообщение,pageId==ID Страницы`
		&validationErrorMessage=`В форме содержатся ошибки!`
		&successMessage=`Сообщение успешно отправлено`
]]
Артур Шевченко
18 сентября 2023, 22:25
0
Ну да, всё так. Только элемент надо правильно выбирать у которого класс удаляете. Я же написал как надо.
$('#success-modal').removeClass('d-none');
Константин
18 сентября 2023, 21:04
0
Сделал как написано в инструкции, причем на одном сайте работает, на этом нет, не могу понять в чем дело. Как я понимаю, мы отлавливаем событие af_complete, по его наступлению, мы удаляем у элемента с id=success-modal класс d-none
Артур Шевченко
18 сентября 2023, 19:53
0
Дорогой друг, вы явно не понимаете что делаете, почитайте про получение html-элементов в JS
Константин
18 сентября 2023, 19:46
0
Форма:
<form action="" method="post" class="ajax_form af_example">
                           <div class="row">
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="Ваше имя">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="tel" id="af_phone" name="phone" value="[[+fi.phone]]" placeholder="Ваш телефон">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="tel" id="af_email" name="email" value="[[+fi.email]]" placeholder="Почта для ответа">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <select id="af_theme" name="theme" value="[[+fi.theme]]">
                                       <option>Тема</option>
                                       <option>Подбор оборудования</option>
                                       <option>Консультация</option>
                                       <option>Запрос КП</option>
                                       <option>Заявка на обратный звонок</option>
                                    </select>
                                 </div>
                              </div>
                              <div class="col-xxl-12">
                                 <div class="contact__input mb-30">
                                    <textarea placeholder="Ваш вопрос"></textarea>
                                 </div>
                              </div>
                              <div class="col-xxl-12">
                                 <div class="contact__form-btn">
                                    <button type="submit" class="d-btn-corp">Отправить</button>
                                 </div>
                              </div>
                           </div>
                        [[+fi.success:is=`1`:then=`
  <div class="alert alert-success">[[+fi.successMessage]]</div>
  `]]
  [[+fi.validation_error:is=`1`:then=`
  <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
  `]]
  <p><input type="checkbox" name="checkme"/> Я прочитал(а) и согласен с <a href="[[~35]]" target="_blank">политикой конфиденциальности</a></p>
  <div id="success-modal" class="alert alert-info d-none">
  <p>Спасибо за обращение! Сообщение успешно отправлено, мы перезвоним Вам в течении 5 минут!</p>
</div>
                           </form>
Скрипт:
<script>
  $(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).find('#success-modal').removeClass('d-none');
}
});
</script>
Не срабатывает, в консоли браузера смотрю, класс d-none не убирается
Константин
18 сентября 2023, 19:42
0
Я пробовал и в форме этот блок указывать и после формы — никак не работает…
Так и указано, что для id:
<script>
  $(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).find('#success-modal').removeClass('d-none');
}
});
</script>
Или не это имеете в виду?
Артур Шевченко
18 сентября 2023, 19:35
0
Я вижу. И вижу что он вне формы. А ещё у него id, т.е можно сделать так
$('#success-modal').removeClass('d-none');
Виноградов Тимур
18 сентября 2023, 17:02
0
Спасибо, посмотрю.
Константин
18 сентября 2023, 16:06
0
У этого блока, который должен появиться после отправки:
<div id="success-modal" class="alert alert-info d-none">
  <p>Спасибо за обращение! Сообщение успешно отправлено, мы перезвоним Вам в течении 5 минут!</p>
</div>
Артур Шевченко
18 сентября 2023, 14:50
0
$(response.form).find('#success-modal').removeClass('d-none');
А #success-modal точно внутри формы?

$(response.form).removeClass('d-none');
А у формы точно есть класс 'd-none'?
Константин
18 сентября 2023, 13:02
0
Здравствуйте, код формы:
<form action="" method="post" class="ajax_form af_example">
                           <div class="row">
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="text" id="af_name" name="name" value="[[+fi.name]]" placeholder="Ваше имя">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="tel" id="af_phone" name="phone" value="[[+fi.phone]]" placeholder="Ваш телефон">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <input type="tel" id="af_email" name="email" value="[[+fi.email]]" placeholder="Почта для ответа">
                                 </div>
                              </div>
                              <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-6">
                                 <div class="contact__input mb-30">
                                    <select id="af_theme" name="theme" value="[[+fi.theme]]">
                                       <option>Тема</option>
                                       <option>Подбор оборудования</option>
                                       <option>Консультация</option>
                                       <option>Запрос КП</option>
                                       <option>Заявка на обратный звонок</option>
                                    </select>
                                 </div>
                              </div>
                              <div class="col-xxl-12">
                                 <div class="contact__input mb-30">
                                    <textarea placeholder="Ваш вопрос"></textarea>
                                 </div>
                              </div>
                              <div class="col-xxl-12">
                                 <div class="contact__form-btn">
                                    <button type="submit" class="d-btn-corp">Отправить</button>
                                 </div>
                              </div>
                           </div>
                        [[+fi.success:is=`1`:then=`
  <div class="alert alert-success">[[+fi.successMessage]]</div>
  `]]
  [[+fi.validation_error:is=`1`:then=`
  <div class="alert alert-danger">[[+fi.validation_error_message]]</div>
  `]]
  <p><input type="checkbox" name="checkme"/> Я прочитал(а) и согласен с <a href="[[~35]]" target="_blank">политикой конфиденциальности</a></p>
                           </form>
                           
<div id="success-modal" class="alert alert-info d-none">
  <p>Спасибо за обращение! Сообщение успешно отправлено, мы перезвоним Вам в течении 5 минут!</p>
</div>
Скрипт класс не убирает…
<script>
  $(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).find('#success-modal').removeClass('d-none');
}
});
</script>
Пробовал и этот
<script>
  $(document).on('af_complete', function(e,response){
if(response.success){
$(response.form).removeClass('d-none');
}
});
</script>
В консоли браузера ошибок нет
Павел Романов
18 сентября 2023, 12:47
0
Автор — Павел Гвоздь.
Протестировать любое дополнение можно на тестовом тарифе Modhost.
Виноградов Тимур
18 сентября 2023, 12:34
0
А вы автор? Есть возможность протестировать xParser?
Артур Шевченко
18 сентября 2023, 11:36
0
'msOnChangeInCart' должно срабатывать на любое изменение в корзине.

Без перезагрузки страницы сложно, тебе надо корзину перерисовывать и возвращать готовый html или всё корзину объектом. Это можно сделать только если ты расширишь обработчик корзины или напишешь свой коннектор на который будешь слать отдельный запрос на получение корзины после изменений в ней.
Виноградов Тимур
18 сентября 2023, 11:35
0
Присоединюсь к вопросу, кто-то использовал компонент в последнее время?
Автор на связи?
Алексей
18 сентября 2023, 10:45
0
Вроде разобрался, данные события case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart': не срабатывают при уменьшении количества товара в корзине, только на удаление. Поставил плагин на событие OnLoadWebDocument и цена обновляется в ту и в другую сторону. Еще бы научиться это делать без перезагрузки страницы.
Ivan
17 сентября 2023, 22:57
0
Не уверен, но там может быть доступна переменная {$total}, и тогда лучше сделать % $total == 0
Алексей
17 сентября 2023, 19:17
0
Большое спасибо Иван!
Поставил {if $idx == 4 or $idx % 32 == 0}
Всё заработало.
Ivan
17 сентября 2023, 18:54
0
Выведите {$idx} посмотрите что выведет. Возможно пдопейдж некешированным вызывается.