QuickForm 2 - конструктор форм с зависимыми полями и калькулятором

  • 583 Ответов
  • 20430 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Ошибка отображается, чтобы вы видели, что и почему делаете неправильно.
Ошибка отображается, чтобы вы видели, что и почему делаете неправильно.

Ошибки сейчас нет для первой вкладки (новая печать), а дальше не получается, чтобы калькулятор считал правильно при добавлении продукта из других вкладок. Игнорируется "срок изготовления", а если добавить в калькуляторе двойную скобку для этого значения и дальше считать, то для бесплатного продукта цена = 0 руб и тогда кол-во умножается на ноль. И я не понимаю, как это исправить.

И ещё вопрос. Как сделать формы из вкладок "Форма заказа" и "Упрощённая форма" независимыми? Сейчас они в одном проекте и нет возможности сделать некоторые поля обязательными, так как не отправляется письмо, пока не заполнишь обязательное поле, а оно может быть не видно клиенту, когда он находится в одной из вкладок, а в другой есть обязательное поле.
« Последнее редактирование: 12.07.2017, 18:31:28 от 27NataRUS »

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Ошибки сейчас нет для первой вкладки (новая печать), а дальше не получается, чтобы калькулятор считал правильно при добавлении продукта из других вкладок. Игнорируется "срок изготовления", а если добавить в калькуляторе двойную скобку для этого значения и дальше считать, то для бесплатного продукта цена = 0 руб и тогда кол-во умножается на ноль. И я не понимаю, как это исправить.

И ещё вопрос. Как сделать формы из вкладок "Форма заказа" и "Упрощённая форма" независимыми? Сейчас они в одном проекте и нет возможности сделать некоторые поля обязательными, так как не отправляется письмо, пока не заполнишь обязательное поле, а оно может быть не видно клиенту, когда он находится в одной из вкладок, а в другой есть обязательное поле.

Если не получается прописать математику в слепую, тогда введите две точки подряд в поле количество. это вызовет ошибку и вы увидите тогда, что у вас и как считается.

Если обязательное поле не видно, значит оно становится не обязательным.    
QuickForm - это динамическая форма, она существует только в видимом на момент отправки варианте. Все зависимые поля, если они не видны, становятся не обязательными, даже CAPTCHA. Это, конечно, не относится к ситуации, если часть формы скрывается другими методами (не QuickForm).

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Вышло обновление компонента. Исправлена ошибка, которая возникала при загрузке файлов через AJAX.

Добавлены новые возможности, в частности поддержка языковых констант для многоязычных сайтов. Константы должны начинаться с префикса QF_.

К радио кнопкам добавлен контейнер span. Если радио группе добавлен класс, тогда каждая кнопка получит span с индивидуальным классом, типа img_class_1, img_class_2 и т.д. Таким образом, стало проще оформлять картинками.

Добавлены новые возможности, в частности поддержка языковых констант для многоязычных сайтов. Константы должны начинаться с префикса QF_.

Отлично, спасибо :)
Буду изучать

Направьте на путь истинный. Не работает отправка. форма тут http://mokupchino.ru/index.php/feedback
По нажатию на кнопку отправить белый лист ничего не происходит.
Спасибо!

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Направьте на путь истинный. Не работает отправка. форма тут http://mokupchino.ru/index.php/feedback
По нажатию на кнопку отправить белый лист ничего не происходит.
Спасибо!
У вас отправка аяксом? Сервер отвечает ошибкой 500. Соответственно, его и смотреть нужно.

*

Оффлайн yrygvay

Добрый день.
Хотел уточнить о возможности прикрепить к форме на сайте согласие " Согласие на обработку персональных данных"
Можно их сделать таким видом :  Поле  "Согласие на обработку персональных данных" - клиент ставит галку о согласие, а сам текст согласия разместить ссылкой и во всплывающем окне.

И ещё вопрос, при обновление Joomla с 3.6.5 до 3.7.3 заполняю анкету, нажимаю отправить и получаю белую страницу и JINVALID TOKEN
Встречается такая проблема после обновления?

« Последнее редактирование: 19.07.2017, 17:21:55 от yrygvay »
Смотрю....

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Добрый день.
Хотел уточнить о возможности прикрепить к форме на сайте согласие " Согласие на обработку персональных данных"
Можно их сделать таким видом :  Поле  "Согласие на обработку персональных данных" - клиент ставит галку о согласие, а сам текст согласия разместить ссылкой и во всплывающем окне.

И ещё вопрос, при обновление Joomla с 3.6.5 до 3.7.3 заполняю анкету, нажимаю отправить и получаю белую страницу и JINVALID TOKEN
Встречается такая проблема после обновления?



Вы можете ввести заголовок для поля следующего вида:
Код: (ini) [Выделить]
Нажимая на кнопку, вы даете согласие на обработку своих персональных данных и соглашаетесь с <a href='javascript:void(0)'>политикой конфиденциальности</a>Кавычки нужны одинарные. Ссылку указывайте на обработчик всплывающего окна, какой вам хочется, или другую страницу.
А вообще, можно половину формы делать открытой, а вторую половину в модальном окне, которое всплывет после нажатия кнопки, компонент довольно гибкий.

По поводу TOKEN, нужно посмотреть на вашем сервере. Мне не удалось симитировать ситуацию, которая смогла бы привести к такой ошибке.

*

Оффлайн yrygvay


По поводу TOKEN, нужно посмотреть на вашем сервере. Мне не удалось симитировать ситуацию, которая смогла бы привести к такой ошибке.
Огромное спасибо за ответ.
https://tkkart.ru/karty/karta-voditelya-skzi#gkMainbodyBottom
На данной форме происходит проблема.
Смотрю....

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Смотреть нужно на сервере, а не в браузере. Впрочем, у вас вообще форма не инициируется на странице, и не только форма. У вас нет библиотеки jQuery, она не выводится.

*

Оффлайн fishi

Добрый день, первый раз пытаюсь настроить вашу форму и вывести на сайте.
Помогите советами, пожалуйста.
Вставляла в страницу {QuickForm id=1} и все хорошо и всплывает и просто как обычная форма.
Но, мне нужно вставить эту форму в конструкторе страниц SP Pagebulder
Мне нужно что б при нажатии на кнопку всплывала форма
Вставляла {QuickForm id=1} в модальное окно и ничего
Вставляла просто в текстовый блок и в блок html5 - не работает
вот так выглядит
Подскажите как можно вывести именно так как мне нужно?

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Для вывода QuickForm разные способы есть. Вам нужно на форуме SP Pagebulder выяснять, поддерживает он контент плагины или нет. Если нет, использовать другие способы.

Upd. Нашла, что при загрузке файла изменяется класс у label. Средствами CSS можно галочку отобразить.

Здравствуйте.
Спасибо, varX, за Вашу поддержку.
У меня снова вопрос. Можно как-нибудь сделать визуальное подтверждение заполненности поля? Типа, если пользователь загрузил файл, появляется галочка рядом с полем, заполнил номер телефона - аналогично.
« Последнее редактирование: 23.07.2017, 09:09:49 от 27NataRUS »

*

Оффлайн yrygvay

Вечер добрый. А не планируется добавление рабочих часов в настройку компонента?
Что-бы пользователь заполнив форму вне нерабочее время получал автоматический ответ о том, что ему ответят в рабочее время.
Смотрю....

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Upd. Нашла, что при загрузке файла изменяется класс у label. Средствами CSS можно галочку отобразить.

Здравствуйте.
Спасибо, varX, за Вашу поддержку.
У меня снова вопрос. Можно как-нибудь сделать визуальное подтверждение заполненности поля? Типа, если пользователь загрузил файл, появляется галочка рядом с полем, заполнил номер телефона - аналогично.

Это просто делается в CSS. Для radio, checkbox, например, есть псевдокласс checked. Там, где CSS не может помочь, как вы уже заметили, изменяется класс у input[type="file"].
Если нужно визуализировать заполнение простых текстовых полей, всей этой подгруппы, то это лишнее в компоненте. При необходимости можно самому добавить небольшой скрипт, но для большинства пользователей это не нужно, да и разобраться им будет сложно.

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Вечер добрый. А не планируется добавление рабочих часов в настройку компонента?
Что-бы пользователь заполнив форму вне нерабочее время получал автоматический ответ о том, что ему ответят в рабочее время.

Нет, не планируется. Есть более интересные вещи, на которые хотелось бы найти время. Но если у вас конкретная необходимость, такой функционал можно просто заказать. Многие функции в компоненте так и появляются, если, конечно, у них нет индивидуального характера.

*

Оффлайн cntrl

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

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Обновился, посмотрел - появилась новая функция calcCondition которая реализует, насколько я понял простейшую логику, не мог бы автор рассказать поподробнее как это работает. Спасибо.

Пока еще нет подробного описания на сайте, попробую тут пояснить. У поля двойное назначение. Если без калькулятора, тогда оно может использоваться для вывода группы полей в форму. Например, у вас большая форма (или много форм) и какой-то набор полей нужно использовать много раз. Можно его выводить через calcCondition.

В случае калькулятора, есть возможность считать по условию. Пример. У вас есть текстовое поле, в которое пользователь вводит количество. Вам нужно, в зависимости от ввода, умножать на два, при значении меньше ста, или умножать на три, при значении больше ста.

В этом случае, вместо этого текстового поля (или целого участка калькулятора) подключаете calcCondition, а уже через него поле. Функция рассчитает значение внутри calcCondition и сравнит его с заданным вами условием. В зависимости от результата, в расчётную строку будут добавлены (или не будут) дополнительные операнды. То есть, в данном случае, вы умножали на два, а если больше ста, то еще на 1.5.

Здравствуйте.
Подскажите, пожалуйста, как на мультиязычном сайте сделать перевод кнопки, вызывающей форму модального окна? Константы для неё не работают.

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Здравствуйте.
Подскажите, пожалуйста, как на мультиязычном сайте сделать перевод кнопки, вызывающей форму модального окна? Константы для неё не работают.

Спасибо за сообщение, упустил этот момент. Пока не выйдет обновление, не знаю, что можно посоветовать. Можно, например, создать несколько проектов для каждого языка. В каждом проекте только одно поле calcCondition, которое выводит основную форму. Или подождать обновление.

Спасибо за сообщение, упустил этот момент. Пока не выйдет обновление, не знаю, что можно посоветовать. Можно, например, создать несколько проектов для каждого языка. В каждом проекте только одно поле calcCondition, которое выводит основную форму. Или подождать обновление.
Спасибо. В какие примерно сроки может выйти обновление?
Ещё было бы неплохо присваивать этой ссылке собственный класс, потому что суффикс CSS-класса модуля в доп. параметрах у модуля не работает. Прописывала в шаблоне позицию для блока с вызовом формы и там уже класс ставила для блока и с помощью него изменяла оформление ссылки.

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Спасибо. В какие примерно сроки может выйти обновление?
Ещё было бы неплохо присваивать этой ссылке собственный класс, потому что суффикс CSS-класса модуля в доп. параметрах у модуля не работает. Прописывала в шаблоне позицию для блока с вызовом формы и там уже класс ставила для блока и с помощью него изменяла оформление ссылки.

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

Только вчера было обновление, пока сложно сказать, попробую найти время в ближайшие дни.
Я вчера и скачала новую версию. )
Спасибо Вам.

Кстати. Сообщение после отправки формы тоже на одном языке.

*

Оффлайн cntrl

Возник вопрос  -итог вычислений с дробными числами можно округлить?

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Кстати. Сообщение после отправки формы тоже на одном языке.
Сообщение после отправки формы должно переводиться.

*

Оффлайн varX

  • ******
  • 1591
  • [+]108 / [-]4
  • разработка компонентов
    • Просмотр профиля
Возник вопрос  -итог вычислений с дробными числами можно округлить?

QuickForm округляет итог до второго знака после запятой. Если итог целое число, то дробная часть (нули) не выводится.

Сообщение после отправки формы должно переводиться.
Да, переводится. Извините.

*

Оффлайн cntrl

На последнем обновление слетели стили кнопки сабмит, вернее добавились из бутстрапа к прописанным мной в addstyle.css кастомным, хотя раньше корректно обрабатывал, стала как будто две кнопки и value "отправить" продублировалось. Откатился пока назад. Как пофиксить?

*

Оффлайн cntrl

В этом случае, вместо этого текстового поля (или целого участка калькулятора) подключаете calcCondition, а уже через него поле. Функция рассчитает значение внутри calcCondition и сравнит его с заданным вами условием. В зависимости от результата, в расчётную строку будут добавлены (или не будут) дополнительные операнды. То есть, в данном случае, вы умножали на два, а если больше ста, то еще на 1.5.

calcCondition - по указанному id в related fields вызывается заранее заготовленный набор полей (пункт-блок) с селектами, намберами и пр. UI и математикой и calcCondition сравнивает сумму - s (в зависимости что в них выбрано) с заданным условием, и далее в зависимости от результата, в начале и конце этого блока-пункта можно вставить немного математики. Не формы (калькулятора) целиком, а именно этого блока-пункта-группы полей. Так ведь?

Все ломаю голову как сделать v*(a+b+c+n)+a1+b1+c1+n1..., где a и a1, b и b1, c и c1 выбираются одним пунктом из селекта? calcCondition не особо поможет?