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

lampodarki

  • Новичок
  • 2
  • 0 / 0
Пусть в форме имеется два поля: "Количество" и "Скидка".
Как сделать так, чтобы если пользователь вписывает в "Количество" значение в диапазоне от 1 до 10, то Скидка *= 1.
Если от 11 до 29, то скидка *= 0,9, и т.д.? Чтобы чем больше количество, тем дешевле единица товара.
Пожалуйста, обрисуйте простейший пример, как это реализовать в RSForm, я уже все Интернеты перелопатил, а ответа не нахожу *ОХ-Х-Х*
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
На фронте - JS по формуле. На стороне сервера по той же формуле контроль.
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
А можете ссылку на пример дать пожалуйста  ^-^. Я в JS полный ноль. Неделю парюсь не могу никак сделать.
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
А можете ссылку на пример дать пожалуйста  ^-^. Я в JS полный ноль. Неделю парюсь не могу никак сделать.
Могу для конкретного сайта (там по ситуации смотреть надо). Для начала продумайте правило - при каком количестве сколько скидывать. И оставьте ссылку на свой сайт.
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Сайт с готовым калькулятором - https://multicard.in.ua/ru/price.html
В этом калькуляторе я это решение сделал пряча поля с ценой которую не нужно отображать.

Делаю точно такой же калькулятор только уже нужно что бы цена отображалась в одном поле.

Нужно что бы при выборе 100 карточек цена была 4.20 за единицу, а при выборе 300 уже 4.00. Я бы эти цены прописал в поле "Тираж," только есть дополнительные поля типа "Штрихкода" которые должны умножатся на количество (шрихкод +0,20 за штуку вне зависимости от тиража).
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
У вас же все равно подвязаны JS-скрипты. Добавьте к радио-кнопкам атрибуты с ценами, например, data-price="4.0" и при клике берите значение этого атрибута для формулы. Более точно смогу предложить, если покажете ваш новый калькулятор. Калькулятор кастомный или это какой-то модуль/компонент?
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Калькулятор делал с помощью RSForm. Новый калькулятор это дубликат этого что я ссылку скинул, он ничем кроме цен не отличается.
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Так там все считается правильно - в зависимости от количества меняется цена.
Делаю точно такой же калькулятор только уже нужно что бы цена отображалась в одном поле.
Это что значит? Сейчас не в одном поле?
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Да  ^-^ Сейчас не в одном. Поле "Цена за тираж" на экране одно. Но на самом деле их 5 и на экране отображаются в зависимости от того какой будет выбран тираж. Не самое лучшее решение но оно работает. Для второго калькулятора мне такой вариант не подходит. Нужно создать одно поле и что бы в нем рассчитывалась цена в зависимости от тиража и дополнительных чекбоксов.
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Понятно. RSForm позволяет добавлять произвольные атрибуты полям?

Посмотрел демку. Есть там закладка Attributes на ней поле Additional Attributes, в полях тиража (где кол-во у вас указано) прописать доп.атрибуты вида data-price="4.20".
« Последнее редактирование: 25.03.2019, 22:42:06 от sivers »
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Но ведь в том поле прописывается атрибут к общему значению "Тираж". Разве можно прописать к каждому тиражу цену?
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Разве можно прописать к каждому тиражу цену?
Конечно, можно! Тег может иметь неограниченное кол-во атрибутов - пользуйтесь этим. Рабочий, который будет передавать форма, только один - это value. А дополнительных, которые сможет использовать JS, сколько угодно. Их название лучше начинать с "data-".
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Вы можете пожалуйста скинуть ссылку примера любого? Я в js не разбираюсь, думаю если бы был пример я его мог бы как то сконфигурировать на свой калькулятор.
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Добавьте атрибуты, о которых я говорил выше, и ссылку на страницу скиньте - напишу вам живой пример JS для работы с этим.
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Добавьте атрибуты, о которых я говорил выше, и ссылку на страницу скиньте - напишу вам живой пример JS для работы с этим.
Я наверное неправильно объяснил. Не знаю терминологию, как это правильно называется но у меня скорее всего где вы хотите прописать цены прописан тираж:
Код
100[p100][c]
200[p200]
300[p300]
500[p500]
1000[p1000]

Когда в поле "Атрибут" прописываю data-price="4.20" он прописывается к всем значениям (100, 200, 300, 500, 1000)

Я вывел новый калькулятор тут: https://multicard.in.ua/ru/price.html
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Да, я не учел, что все радио-кнопки - это одно поле в дизайнере форм. В таком случае в доп. атрибутах пропишите следующее (цены поставьте правильные):

Код
data-price100="4.20"
data-price200="4.20"
data-price300="4.00"
data-price500="3.80"
data-price1000="3.60"

в каждой радио-кнопке будут прописаны все цены, но не составит труда вытянуть свою.
Второй вариант - это прописать 1 атрибут (он так же будет совпадать у всех), в котором цены прописать в виде json-строки:

Код
data-price="{100:'4.20',200:'4.20',300:'4.00',500:'3.80',1000:'3.60'}"

Сделайте тот вариант, который вам больше нравится.

И, кстати, есть еще третий вариант - вывести этот json с ценами в отдельное скрытое (hidden) поле и потом будем брать из него - так можно избежать дублирования атрибута в полях - небольшая экономия веса страницы.
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
И, кстати, есть еще третий вариант - вывести этот json с ценами в отдельное скрытое (hidden) поле и потом будем брать из него - так можно избежать дублирования атрибута в полях - небольшая экономия веса страницы.
Если делать этим третьим способом то код в атрибутах уже наверное не так будет выглядеть? Он должен понимать откуда брать эти 100, 200... Я создал это поле (не скрытое, там цена за 1шт.) и вписал туда:

Код
data-price="{100:'4.20',200:'4.20',300:'4.00',500:'3.80',1000:'3.60'}" 
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
JS будет вот такой:
Код
jQuery(function(){
    jQuery('input[name="form[Tiraj]"]').bind('change', function(){
        var qty = this.value;
        var inpPrice = jQuery('#Total2');
        var prices = jQuery.parseJSON(inpPrice.data('price'));
        var price = prices[qty];
        inpPrice.val(price);
        jQuery('#Total').val(qty*price);
    }).trigger('change');
});

Только вот он требует, чтоб в жсон-строке использовались не одинарные, а двойные кавычки и чтоб имена параметров (у вас это количество 100, 200, 300...) тоже брались в двойные кавычки (а вот цены - можно и без кавычек). Поменяйте и должно работать. Как вариант, в скрытом поле #Total2 использовать не жсон, а отдельные параметры, как в варианте №1 выше - тогда не будет заморочек с жсоном и заполнять вам будет легче.
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
Что то я наверное не так делаю. Вставил этот код, поменял в атрибутах поля Total2 так как в первом варианте выше, но оно не срабатывает.

Еще хотел спросить, а это вы пытаетесь цену сразу вывести в поле Total?
Код
jQuery('#Total').val(qty*price); 
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
Что то я наверное не так делаю. Вставил этот код, поменял в атрибутах поля Total2 так как в первом варианте выше, но оно не срабатывает.

Еще хотел спросить, а это вы пытаетесь цену сразу вывести в поле Total?
Код
jQuery('#Total').val(qty*price); 

Это пример. Вечером посмотрю что там. А пока сделайте так:
Код
jQuery(function(){
    jQuery('input[name="form[Tiraj]"]').bind('change', function(){
        var qty = this.value;
        var inpPrice = jQuery('#Total2');
        var price = inpPrice.data('price'+qty);
        price = parseFloat(price);
        inpPrice.val(price);
        jQuery('#Total').val(qty*price);
    }).trigger('change');
});
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
 ^-^ ^-^ ^-^ Заработало! Круто! Спасибо! Вечером доделаю что бы общая стоимость правильно отображалась.
*

sivers

  • Давно я тут
  • 532
  • 56 / 0
На здоровье.

Косячок заметил - по умолчанию в поле цены попадает минимальная цена. Чтоб устранить, надо поменять предпоследнюю строку:
Код
}).trigger('change');
вот на такую:
Код
}).filter(':checked').trigger('change');
*

Paveldz

  • Осваиваюсь на форуме
  • 29
  • 0 / 0
попадает минимальная цена
Как раз щелкал тут не мог найти как это исправить. Спасибо еще раз огромное! Очень помогли)
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Вывод формы в карточке товара

Автор nastali96

Ответов: 3
Просмотров: 383
Последний ответ 14.02.2018, 09:07:58
от effrit
Вывод списка в зависимости от поле select ?

Автор warlocksp

Ответов: 8
Просмотров: 1057
Последний ответ 26.10.2017, 04:50:32
от warlocksp
Расчет динамических данных в калькуляторе

Автор турист

Ответов: 9
Просмотров: 2607
Последний ответ 27.05.2017, 09:00:29
от Stasweb
RSForm вывод изображения в PDF в зависимости от выбора значения

Автор Ashaurock

Ответов: 0
Просмотров: 396
Последний ответ 11.11.2016, 15:23:41
от Ashaurock
RS Form: отправка на разные почты в зависимости от выбранного пункта

Автор p.g.

Ответов: 0
Просмотров: 686
Последний ответ 11.05.2016, 20:26:46
от p.g.