Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Компонент "Письмо с сайта (веб-форма)"

14.12.2016, 07:28
Гость
Гость

В макете находится несколько инфоблоков, один из них "Письмо с сайта (веб-форма)". Если одно из полей в компоненте "Письмо с сайта (веб-форма)" заполнено не правильно=>открывается add,php
которое доблестно рушит макет. это add.php вылезает на самом верху страницы.
Это версия "бизнес". ..
16.12.2016, 11:07
VenZell
Карагодников Алексей Николаевич
VenZell

Зарегистрирован:
2014-07-25
Сообщений: 77

Это стандартное поведение.
У вас есть два варианта:
1) Учесть это поведение в своем макете, если не хотите его менять
2) В компоненте вы можете самостоятельно определить, как будет обрабатываться форма добавления, изменив основной шаблон и шаблон действий для добавления объектов.

Во втором случае, вы можете без проблем реализовать AJAX-форму, если это необходимо или делать редирект обратно на страницу с формой, любым удобным образом, передавая на нее ошибки валидации.
26.01.2017, 21:48
Гость
Гость

А можно пример кода формы и как получать, обрабатывать и показывать ошибки на ajax?
Как вообще в netcat работать с ajax? какой-нибудь базовый, правильный для netcat код ... что именно, куда вставить и как настраивать? думаю многим было бы полезно.
Спасибо!
26.01.2017, 21:50
Гость
Гость

Чтобы понять как выводить сообщения об ошибках и об успешной отправке формы ... в тексте страницы и в всплывающих окнах...... для чайников но с упором на правильность в смысле применения этого всего в netcat
04.02.2017, 15:12
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Вариантов масса, и нельзя какой-то из них назвать наиболее правильным.
Можете попробовать такую технологию:
1. В JS делаете отправку формы ajax'ом с параметром isNaked=1 в POST-массиве
2. В условиях добавления объекта делаете все нужные валидации. Если есть ошибки - формируете json-респонс, в котором будет во-первых указан сам факт ошибки, а во-вторых, будет перечислено, в каких полях что за ошибки есть. После формирования такого json-массива, делаете on_end_clean(); потом делаете echo этого респонса и сразу же exit.
Если ошибок нет - тогда ничего не выводить на экран.
3. В действии после добавления объекта сделать также json-ответ (с кодом, сигнализирующим уже об успешной отправке формы), также с ob_end_clean и exit'ом.
4. В success-обработчике ajax запроса анализируете респонс и выводите ошибки в нужных местах, либо текст сообщения об успешной отправке, который можно также json'ом передать из действия после добавления объекта.
198 196 2017-02-04 15:12:56 14648
Описание проекта