Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Php калькулятор цен
Форумы портала PHP.SU » » Вопросы новичков » Php калькулятор цен

Страниц (1): [1]
 

1. lQuestl - 20 Ноября, 2017 - 20:28:41 - перейти к сообщению
Здравствуйте, формумчане!
Прошу вашей помощи. Буду благодарен за любую помощь.
На сайте хочу сделать калькулятор цен. Приведу пример, как должен работать.
Пример:
1 строчка - выпадающее список "список продуктов" порядка 20 продуктов.
2 строчка - выпадающее список "тип продукта" например продление или новая. цена зависит от типа продукта.
3. выбрать диапазон устройств. цена тоже зависит от диапазона.
4. строчка - указывают количество
5. строчка выводит стоимость продукта.
Сценарий - выбрал продукт- указал тип скидки (новая или продление) - выбрал диапазон - указал количество.
калькулятор показал стоимость.

Как пример https://www[dot]kaspersky[dot]ru/small-t[dot][dot][dot]s-security/cloud
При выборе количества считается цена, только тут уже выбран продукт. У меня их будет более 20шт.

Заранее спасибо.
2. Vladimir Kheifets - 21 Ноября, 2017 - 08:15:28 - перейти к сообщению
lQuestl пишет:
Здравствуйте, формумчане!
Прошу вашей помощи. Буду благодарен за любую помощь.
На сайте хочу сделать калькулятор цен. Приведу пример, как должен работать.
Пример:
1 строчка - выпадающее список "список продуктов" порядка 20 продуктов.
2 строчка - выпадающее список "тип продукта" например продление или новая. цена зависит от типа продукта.
3. выбрать диапазон устройств. цена тоже зависит от диапазона.
4. строчка - указывают количество
5. строчка выводит стоимость продукта.
Сценарий - выбрал продукт- указал тип скидки (новая или продление) - выбрал диапазон - указал количество.
калькулятор показал стоимость.

Как пример https://www[dot]kaspersky[dot]ru/small-t[dot][dot][dot]s-security/cloud
При выборе количества считается цена, только тут уже выбран продукт. У меня их будет более 20шт.

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

Доброе утро!
Мне кажется, что в начале должен выбираться "тип продукта", а затем "список продуктов", но это не столь важно.
1. Очевидно, что нужно сделать форму для ввода/выбора данных.
2. Если, Вы хотите чтобы работало как в примере, то Вам нужно для каждого
объекта обрабатывать событие связанные с измение значений.
3. Далее возможно два решения - как в Вашем примере, без перезагрузки формы,
либо с перезагрузкой. Перезагрузка необходима,в том случае, если требуется
выбирать данные из БД, использую введённые данные для генерации запросов.

Если необходимо перезагрузка, то всё просто. Ставите в каждый объект обработчик
onChange делаете submit формы.
Немного, сложнее, без перезагузки. Делется это, например, так:
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Calculator</title>
  5. <script>
  6. //-------------------------------------------------------------------
  7. function SetInnerHTML(id, v){
  8.  if(isId(id))    
  9.         window.document.getElementById(id).innerHTML = v;
  10. }
  11. //-------------------------------------------------------------------
  12. function isId(elId){
  13.     if(window.document.getElementById(elId))
  14.         r=true;
  15.     else
  16.         r=false;    
  17.     return r;    
  18. }
  19. //-------------------------------------------------------------------
  20. function GetValueById(elId){
  21.      if(isId(elId))
  22.      {
  23.               obj=window.document.getElementById(elId);
  24.               t=obj.type;
  25.               if(t.match(/^select/))
  26.               {
  27.                       ind = obj.selectedIndex;
  28.                      opt = obj.options;
  29.                      return opt[ind].value;
  30.               }
  31.               else
  32.               {                      
  33.                       return obj.value;
  34.               }
  35.      }
  36.      else
  37.              return false;
  38. }
  39. //-------------------------------------------------------------------
  40. function ChangePrice(){
  41. A=GetValueById("A");
  42. B=GetValueById("B");
  43. P=A*B;
  44. SetInnerHTML("price",P);
  45. }
  46. //-------------------------------------------------------------------
  47. </script>
  48. </head>
  49. <body>
  50. <form action=" " method="get">
  51. <select name="A" id="A" onChange='ChangePrice()'>
  52. <option>10</option>
  53. <option>20</option>
  54. <option>30</option>
  55. </select>
  56. <select name="B" id="B" onChange='ChangePrice()'>
  57. <option>5</option>
  58. <option>6</option>
  59. <option>7</option>
  60. </select>
  61. </form/
  62. Цена:
  63. <div id="price"></div>
  64. </body>
  65. </html>

Удачи!

 

Powered by ExBB FM 1.0 RC1