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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Калькулятор за пиво

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
android
Отправлено: 27 Марта, 2012 - 20:36:28
Post Id


Посетитель


Покинул форум
Сообщений всего: 335
Дата рег-ции: Сент. 2011  


Помог: 0 раз(а)




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

У меня проблема в том что при выборе игры тарифы и слоты не заменяются а просто добавляются. Вот как должно работать:

Чел выбирает игру cs у него показывает слоты, тарифы для этой игры.
При выборе другой игры слоты и тарифы заменяются на данные другой игры...

CODE (javascript):
скопировать код в буфер обмена
  1. <form action="" method="POST" name="registration" id="registration">
  2.    <table width="588" border="0" cellspacing="0" cellpadding="3" style="display:table-cell;width:588px;">
  3.    <tr><td width="60%">Игра:</td><td width="40%">
  4.      <select class="input_zakaz" style="width:300px" name="game" id="game" onchange="rechecksum()">
  5.      <option value="css">Counter-Strike: Source v34</option><option value="cs">Counter-Strike 1.6</option>  
  6.      </select>
  7.      </td></tr>
  8.      <tr><td width="60%" id="tariff_tr">Локация:</td><td width="40%">
  9.      <select class="input_zakaz" style="width:300px" name="location" id="game">
  10.      <option value="20">Германия</option>  
  11.      </select>
  12.      </tr></tr>
  13.    <tr><td width="60%" id="tariff_tr">Тариф:</td><td width="40%">
  14.      <select class="input_zakaz" style="width:300px" name="tariff" id="tariff" onchange="rechecksum();"></select>
  15.      </td></tr>
  16.    <tr><td width="60%">Слоты:<div id="tariff_price" style="float:right;display:inline;"></div></td><td width="40%">
  17.      <select style="width:300px" name="slots" id="slots" onchange="rechecksum()"></select>
  18.      </td></tr>
  19.    <tr><td width="60%">Срок аренды:</td><td width="40%">
  20.      <select style="width:300px" name="time" id="time" onchange="rechecksum()">
  21.      <option value="30">1 месяц</option><option value="60">2 месяца</option><option value="90">3 месяца</option><option value="180">6 месяцев</option><option value="360">1 год</option>
  22.      </select>
  23.      </td></tr>
  24.    <tr><td width="60%"></td><td width="40%" align="right"><span style="font-size:18px;font-weight:bold;" id="price">Итого: 250 руб.</span></td></tr>
  25.    </table>
  26. </form>
  27. <script type="text/javascript">
  28.  function addoption (oListbox, text, value, isDefaultSelected, isSelected) {
  29.    var oOption = document.createElement("option");
  30.    oOption.appendChild(document.createTextNode(text));
  31.    oOption.setAttribute("value", value);
  32.    if (isDefaultSelected) oOption.defaultSelected = true;
  33.    else if (isSelected) oOption.selected = true;
  34.    oListbox.appendChild(oOption);
  35.  }
  36.  
  37.  function rechecksum(){
  38.    var time = eval($('#time').val());
  39.    var slots = $('#slots').val();
  40.    var tariff = $('#tariff').val();
  41.    var game = $('#game').val();
  42.    var multiplier = 1;
  43.    old_tariff = $("#tariff_price").html();
  44.    
  45.    switch(game){
  46.  
  47.          case 'css':
  48.          $('#tariff').css({display:'block'});
  49.            var tarifs = document.getElementById("tariff");
  50.            addoption(tarifs, 'test', 30, false);
  51.  
  52.            tariff = 25;
  53.          
  54.          
  55.            slot = '';
  56.            var slot = document.getElementById("slots");
  57.            for(var i=10; i <= 25; i++) addoption(slot, i, i, false, false);
  58.        
  59.         break;
  60.        
  61.         case 'cs':
  62.         var game_case = 'cs';
  63.         $('#tariff').css({display:'block'});
  64.        
  65.           var tarifs = document.getElementById("tariff");
  66.           addoption(tarifs, '1 (FPS 1000)', 35, false);
  67. addoption(tarifs, '2 (500 FPS)', 25, false);
  68. addoption(tarifs, '3 (250 FPS)', 20, false);
  69.  
  70.           tariff = 25;
  71.        
  72.        
  73.           slot = '';
  74.           var slot = document.getElementById("slots");
  75.           for(var i=10; i <= 32; i++) addoption(slot, i, i, false, false);
  76.        
  77.         break;
  78.        
  79.   }
  80.    
  81.   switch(time){
  82.     case 3:
  83.       break;
  84.     case 6:
  85.       break;
  86.     case 15:
  87.       break;
  88.     case 30:  
  89.       break;
  90.     case 90:
  91.       multiplier = 0.95;
  92.       break;
  93.     case 180:
  94.       multiplier = 0.9;
  95.       break;
  96.     case 360:
  97.       multiplier = 0.85;
  98.       break;
  99.   }
  100.  
  101.   price = Math.round(time*slots*tariff*multiplier/30);
  102.  
  103.   old_price = $('#price').html().split(" ");
  104.   old_price = old_price[1];
  105.  
  106.   diff = price - old_price;
  107.  
  108.   setTimeout("update_price()", 0);  
  109.  
  110. }
  111.  
  112. function update_price(){
  113.  
  114.   if(diff != 0){
  115.     if(diff > 0){
  116.        diff--;
  117.        
  118.        old_price++;
  119.      } else {
  120.        diff++;
  121.        old_price--;
  122.      }
  123.    }
  124.  
  125.    $('#price').html("Итого: "+old_price+" руб.");
  126.    
  127.    if(old_price != price){
  128.      setTimeout("update_price()", 1);
  129.    }
  130.  }
  131. </script>


Конечно же за копеечку на пиво. Спасибо!

И кстати кто возьмется написать все вручную но так что бы данные я вводил через php тоже в 0 не останется:
Спойлер (Отобразить)
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB