Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.04.2017, 22:52
Интересующийся
Отправить личное сообщение для zoomx25 Посмотреть профиль Найти все сообщения от zoomx25
 
Регистрация: 03.04.2017
Сообщений: 10

Вытащить переменную из select и добавить в формулу
Здравствуйте!

Помогите пожалуйста разобраться.

Имеется два типа приборов, они сдаются в аренду по кол-во дней. Срок делится на 4 части
Для одного прибора
3-7 дней - 5500 т.р. (сумма 1 день)
8-14 дней - 4500 т.р. (сумма 1 день)
15-30 дней - 4000 т.р. (сумма 1 день)
31+ дней - 3500 т.р. (сумма 1 день)

Для второго прибора

3-7 дней - 6000 т.р. (сумма 1 день)
8-14 дней - 5000 т.р. (сумма 1 день)
15-30 дней - 4500 т.р. (сумма 1 день)
31+ дней - 4000 т.р. (сумма 1 день)

Расчет происходит следующим образом
Из списка выбирается прибор и вводится кол-во дней.

Вот код, который пытался написать самостоятельно

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
</style>
<script type="text/javascript">
function calc_comlect() {
	var days3=+document.getElementById('days3').value // кол-во дней
	var rtk_uhf=+document.getElementById('rtk_uhf').value
	var rtk_gsm=+document.getElementById('rtk_gsm').value
	
  if (days3==0) {rtk_uhf=0;}
  else if (days3<=3) { rtk_uhf=6000;}
  else if (days3<=7) { rtk_uhf=days3*6000;}
  else if (days3<=14) { rtk_uhf=days3*5000;}
  else if (days3<=30) { rtk_uhf=days3*4500;}
  else if (days3>=31) { rtk_uhf=days3*4000;}
  if (days3==0) {rtk_gsm=0;}
  else if (days3<=3) { rtk_gsm=5500;}
  else if (days3<=7) { rtk_gsm=days3*5500;}
  else if (days3<=14) { rtk_gsm=days3*4500;}
  else if (days3<=30) { rtk_gsm=days3*4000;}
  else if (days3>=31) { rtk_gsm=days3*3500;}
	
	
	document.getElementById('rtk_uhf').value=rtk_uhf
	document.getElementById('rtk_gsm').value=rtk_gsm
	document.getElementById('summ').value=selectId*days3 // сумма дни + комплект
	
}
function change() {
    select = document.getElementById("selectId"); // Выбираем  select по id
    value = select.options[select.selectedIndex].value; // Значение value для выбранного option
}
var select, value;

</script>
</head>
<body>
<select size="1" id="selectId" onchange="change()">
<option value="rtk_uhf">UHF 35W</option>
<option value="rtk_gsm">GSM/GPRS</option>
</select>
<input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
<input type='text' id='summ' /> <!-- вывод суммы на экран -->
<input type="button" name="button" id="button" onClick="calc_comlect()" value="вычислить"
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 04.04.2017, 01:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

zoomx25,
<!DOCTYPE html>
<html>
<head><meta charset="utf-8">
<style type="text/css">
</style>
<script type="text/javascript">
function calc_comlect() {
  var days3= +document.getElementById('days3').value; // кол-во дней
  var gsm = document.getElementById('selectId').value == "rtk_gsm";
  var sumDay = gsm ? [5500,4500,4000,3500] : [6000,5000,4500,4000];
  var day = [3,7,14,30];
  sumDay = day.reduce(function(a,b,i) {
     return b <= days3  ? sumDay[i] : a
},0)
  document.getElementById('summ').value=sumDay *days3 // сумма дни + комплект

}


</script>
</head>
<body>
<select size="1" id="selectId" onchange="calc_comlect()">
<option value="rtk_uhf">UHF 35W</option>
<option value="rtk_gsm">GSM/GPRS</option>
</select>
<input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
<input type='text' id='summ' /> <!-- вывод суммы на экран -->
<input type="button" name="button" id="button" onClick="calc_comlect()" value="вычислить">
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 04.04.2017, 01:12
Интересующийся
Отправить личное сообщение для zoomx25 Посмотреть профиль Найти все сообщения от zoomx25
 
Регистрация: 03.04.2017
Сообщений: 10

Огромное спасибо!!!
Ответить с цитированием
  #4 (permalink)  
Старый 04.04.2017, 01:22
Интересующийся
Отправить личное сообщение для zoomx25 Посмотреть профиль Найти все сообщения от zoomx25
 
Регистрация: 03.04.2017
Сообщений: 10

Есть еще один нюанс, аренда от 3-х дней, т.е. 1 день или 2 дня будут стоить как три.
Я совсем салага в этом деле.
Вот как проверялось в моем коде

else if (days3<=3) { rtk_gsm=5500;}

Если логическим путем сделать
var sumDay = gsm ? [16500,16500,5500,4500,4000,3500] : [18000,18000,6000,5000,4500,4000];
  var day = [1,2,3,7,14,30];



то не работает ((((

надо что то еще вот сюда добавить

sumDay = day.reduce(function(a,b,i) {
     return b <= days3  ? sumDay[i] : a },0)

Последний раз редактировалось zoomx25, 04.04.2017 в 01:25.
Ответить с цитированием
  #5 (permalink)  
Старый 04.04.2017, 01:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

zoomx25, добавить
var days3= +document.getElementById('days3').value; // кол-во дней
*!*
  days3 < 3 && (days3  = 3);
*/!*
Ответить с цитированием
  #6 (permalink)  
Старый 04.04.2017, 01:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

или так.
<!DOCTYPE html>
<html>
<head>
  <style type="text/css">
  </style>
</head>
<body>
  <select size="1" id="selectId" onchange="change()">
    <option value="rtk_uhf">UHF 35W</option>
    <option value="rtk_gsm">GSM/GPRS</option>
  </select>
  <input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
  <input type="button" name="button" id="button" onclick="calc_comlect()" value="вычислить">
  <input type='text' id='summ' value="" /> <!-- вывод суммы на экран -->
  <script type="text/javascript">

 function calc_comlect() {
  var days3 = document.getElementById('days3').value;// кол-во дней
  var value = document.getElementById('selectId').value; // Выбираем  select по id
  var bablo;

if (value == "rtk_uhf") {
  if (days3==0) {bablo=0;}
  else if (days3<=3) { bablo=18000;}
  else if (days3<=7) { bablo=days3*6000;}
  else if (days3<=14) { bablo=days3*5000;}
  else if (days3<=30) { bablo=days3*4500;}
  else  { bablo=days3*4000;}
}
  else if (value == "rtk_gsm") {
  if (days3==0) {value=0;}
  else if (days3<=3) { bablo=16500;}
  else if (days3<=7) { bablo=days3*5500;}
  else if (days3<=14) { bablo=days3*4500;}
  else if (days3<=30) { bablo=days3*4000;}
  else  { bablo=days3*3500;}
}
  document.getElementById('summ').value = bablo; // сумма дни + комплект
}
</script>
</body>
</html>

Последний раз редактировалось j0hnik, 04.04.2017 в 02:04.
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2017, 02:07
Интересующийся
Отправить личное сообщение для zoomx25 Посмотреть профиль Найти все сообщения от zoomx25
 
Регистрация: 03.04.2017
Сообщений: 10

Сообщение от j0hnik Посмотреть сообщение
или так.
<!DOCTYPE html>
<html>
<head>
  <style type="text/css">
  </style>
</head>
<body>
  <select size="1" id="selectId" onchange="change()">
    <option value="rtk_uhf">UHF 35W</option>
    <option value="rtk_gsm">GSM/GPRS</option>
  </select>
  <input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
  <input type="button" name="button" id="button" onclick="calc_comlect()" value="вычислить">
  <input type='text' id='summ' value="" /> <!-- вывод суммы на экран -->
  <script type="text/javascript">

 function calc_comlect() {
  var days3 = document.getElementById('days3').value;// кол-во дней
  var value = document.getElementById('selectId').value; // Выбираем  select по id
  var bablo;

if (value == "rtk_uhf") {
  if (days3==0) {bablo=0;}
  else if (days3<=3) { bablo=18000;}
  else if (days3<=7) { bablo=days3*6000;}
  else if (days3<=14) { bablo=days3*5000;}
  else if (days3<=30) { bablo=days3*4500;}
  else  { bablo=days3*4000;}
}
  else if (value == "rtk_gsm") {
  if (days3==0) {value=0;}
  else if (days3<=3) { bablo=16500;}
  else if (days3<=7) { bablo=days3*5500;}
  else if (days3<=14) { bablo=days3*4500;}
  else if (days3<=30) { bablo=days3*4000;}
  else  { bablo=days3*3500;}
}
  document.getElementById('summ').value = bablo; // сумма дни + комплект
}
</script>
</body>
</html>
Спасибо!!!!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавить option в select при помощи js flyte Javascript под браузер 15 23.01.2017 11:23
Вытащить значение в переменную между тегов с множественным переносом строки petral7 Javascript под браузер 20 11.08.2016 06:06
Как вытащить из Return в переменную для передачи в форму? Enterely Javascript под браузер 9 11.02.2015 17:10
как вытащить переменную из следующего скрипта k0rshun Ваши сайты и скрипты 2 21.05.2014 10:11
как вытащить переменную из следующего скрипта k0rshun Общие вопросы Javascript 15 24.04.2014 11:17