Page 1 of 1

Ошибки при валидации формы, если форм несколько

Posted: Tue Mar 10, 2015 1:49 pm
by Singularity
Добрый день!
Возникла такая сложность:
На странице одновременно встроены две формы: расширенная внизу и маленькая сверху. В обеих есть каптчи.
При введении неверных данных капчи в одной форме, соответствующая подсказка всплывает в обеих формах, что неприемлемо (вводил сверху, а красная надпись появилась и снизу).

Я нашел пока единственное решение: ввести переменную, которая бы назначалась при нажатии на кнопку "Отправить" (например, $submittedform='footer'), и при выведении списка ошибок (который в шаблоне проверяется перед выводом самой формы) проверялась по принципу: {if... && $submittedform=='footer'}.

Но не нашел способа назначить эту переменную. Был вариант назначить ее через UDT в свойстве формы Form Submission Behavior, но подключение в этом поле любого, даже содержащего "echo 'Hello world';" тэга приводит к тому, что ошибка при вводе каптчи не высвечивается должным образом, там вообще немного неадекват выходит в этом варианте...

Так что ключевой вопрос №1: как, работая в FormBuilder, сделать так, что при нажатии на кнопку "Submit" некоей переменной присваивалось нужное значение?

Вопрос №2: А может, сама исходная проблема в чем-то ином (высвечивание ошибки одной формы в обеих, загружаемых в одном документе)?

Заранее спасибо!

Re: Ошибки при валидации формы, если форм несколько

Posted: Tue Mar 10, 2015 2:06 pm
by guro
Если обе формы помечены встроенными "Pасширения" => "Конструктор форм" => Нужная форма => "Основные настройки" => "Показывать форму встроенной?:", то сообщения об ошибках должны показываться у каждой формы свои.

Re: Ошибки при валидации формы, если форм несколько

Posted: Tue Mar 10, 2015 2:18 pm
by Singularity
С ошибками - да, с капчей - нет, одна ошибка в двух формах

Re: Ошибки при валидации формы, если форм несколько

Posted: Tue Mar 10, 2015 4:42 pm
by Singularity
Придумал костыль: проблема возникала из-за того, что ошибка в капче создавает переменную $captcha_error, а вывод ошибки во всех формах проходит через условие if isset($captcha_error) && $captcha_error.

Таким образом, как только где-то такая ошибка возникает, все формы в документе тут же перезагружаются и спешат выдать сообщение об этой ошибке.

Поэтому решение получилось такое: после выдачи ошибки впервой форме обнулить переменную:
$captcha_error = '';

Работает.

Re: Ошибки при валидации формы, если форм несколько

Posted: Tue Mar 10, 2015 7:04 pm
by guro
А если ошибка была во второй форме? ;)

Re: Ошибки при валидации формы, если форм несколько

Posted: Wed Mar 11, 2015 10:54 am
by Singularity
Если во второй шибка, то первая не реагирует )
Вот если будет три, то тут придется попотеть, поэтому на будущее хотелось бы выяснить, как лечить...