Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2022, 12:34
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Помогите пожалуйста доработать! Калькулятор цен
Есть калькулятор цен он менялся в зависимости от потребностей, но сейчас нужно объединить их работу в один. Первый калькулятор брал цены со спан и умножал на коеф. из валют. Второй можно указывать цены вручную, но нет дополнительных валют. ПРосьба помочь что бы можно было оставить возможность меня цены вручную для каждой позиции, но при этом цена умножалась еще на коэф. выбранной валюты.

Первый калькулятор с переводом валют
<body>

<div class="tab-content">
 <div class="col-md-12 vartex" style="padding-right: 0px">
<input type="radio" class="radio" name="nameRadio" value="1" data-info="Near Native" checked="checked" data-value="1"/ id="test1"><label class="lbr">Near Native</label>

<input type="radio" class="radio" name="nameRadio" value="1.483870967741935" data-info="Native" data-value="2"/ id="test2"><label class="lbr">Native</label>

<output id="rezultatRadio" style="display: none;">1</output>
	</div>
<!--------------------------------------------------------------------------------Tab panes vi----------------------------------------------------------- -->
<div class="tab-pane active container" id="vi">
<div class="row">
   <!------------------------------------5 classes взрослые группа--------------------------------------------Tab panes--------------------->
<div class="col-xl-3 col-lg-3 col-md-6 col-sm-12">
<div class="card">
<div class="urok">
<p class="uroktext text-center">5 classes</p>
</div>
   <div class="timecard">
      <p><span><img src="https://addrian.school/img/img/clock_1.svg" alt="" class="timecardimg"></span>50 min</p>
      </div>
<div class="card-body">
    <div class="price">
        <h5 class="text-center indificator" id="vii5"  data-cost='12.4'><span>12.4€</span></h5>
        <h4 class="text-center">per class</h4>
    </div>
     <hr class="hrmy">
     <h5 class="text-center pricepacketprice" data-cost='62' >
		<p style="margin-bottom: 0px!important; min-height: 50px;"> <span class="price" id="vi5">62€</span> <span class="vtor">per package</span></p> 
            </h5> 
     <p class="pricepacketsale text-center" style="display: none;">save  3%</p>

</div>
</div>
  </div>

<!------------------------------------10 classes взрослые группа--------------------------------------------Tab panes--------------------->
  <div class="col-xl-3 col-lg-3 col-md-6 col-sm-12">
<div class="card">
<div class="urok">
<p class="uroktext text-center"> 10 classes</p>
  </div>
   <div class="timecard">
      <p><span><img src="https://addrian.school/img/img/clock_1.svg" alt="" class="timecardimg"></span>50 min</p> 
      </div>
<div class="card-body">
    <div class="price">
        <h5 class="text-center indificator" id="vii10"  data-cost='9'> <span>12€</span></h5>
        <h4 class="text-center">per class</h4>
    </div>
    <hr  class="hrmy">
     <h5 class="text-center pricepacketprice" data-cost='90'>
		<p style="margin-bottom: 0px!important;"> <span class="price"  id="vi10">120€</span> <span class="vtor">per package</span></p> 
            </h5> 
     <p class="pricepacketsale text-center">save   3%</p>

</div>
</div>
  </div>
<!------------------------------------20 classes взрослые группа--------------------------------------------Tab panes--------------------->
  <div class="col-xl-3 col-lg-3 col-md-6 col-sm-12">
<div class="card">
<div class="urok">
<p class="uroktext text-center">20 classes</p>
  </div>
	<div class="">
		<img src="https://addrian.school/img/img/vs2.png" class="" id="imgggg" alt="">
	<p class="vsp"><span><img src="https://addrian.school/img/img/q.png" alt="" class="vsi">best</span></p>
	</div>
   <div class="timecard tmvs">
      <p><span><img src="https://addrian.school/img/img/clock_1.svg" alt="" class="timecardimg"></span>50 min</p>
      </div>
<div class="card-body">
    <div class="price   vs1">
        <h5 class="text-center indificator"  id="vii20" data-cost='8.5'> <span>11.2€</span></h5>
        <h4 class="text-center">per class</h4>
    </div>
     <hr class="hrmy">
     <h5 class="text-center pricepacketprice" data-cost='179'>
		<p style="margin-bottom: 0px!important;"> <span class="price"  id="vi20">236€</span> <span class="vtor">per package</span></p> 
            </h5> 
     <p class="pricepacketsale text-center">save   5% + 1 lesson as a gift</p>

</div>
</div>
  </div>
<!------------------------------------40 classes взрослые группа--------------------------------------------Tab panes--------------------->
  <div class="col-xl-3 col-lg-3 col-md-6 col-sm-12">
<div class="card">
<div class="urok">
<p class="uroktext text-center"> 40 classes</p>
  </div>
   <div class="timecard">
      <p><span><img src="https://addrian.school/img/img/clock_1.svg" alt="" class="timecardimg"></span>50 min</p>			  
      </div>
<div class="card-body">
    <div class="price">
        <h5 class="text-center indificator" id="vii40"   data-cost='8.3'> <span>10.9€</span></h5>
        <h4 class="text-center">per class</h4>
    </div>
     <hr  class="hrmy">
     <h5 class="text-center pricepacketprice" data-cost='347'>
		<p style="margin-bottom: 0px!important;"> <span class="price"  id="vi40">457€</span> <span class="vtor">per package</span></p> 
            </h5> 
     <p class="pricepacketsale text-center">save   8% + 2 lesson as a gift</p>

</div>
</div>
  </div>	
</div>
</div>
    <div class="row" style="display: none">
	
	
<div class="col-md-12 vartex  vartex2"  style="padding-right: 0px">
	
	<p class="prepod">	<b>Изменить валюту:</b><select  id="valuta" class="dropdown-select">
 <option>&euro; EUR</option>
		</select>	</p>
		
		
	</div>
			
	</div>	
	</div>
	</body>
</html>
<script>

document.addEventListener("DOMContentLoaded", function() {
    let db = [{
            ISO4217: '₴',
            multiply: 1
        },
			  {
            ISO4217: '$',
            multiply: 0.0369
        },
        {
            ISO4217: '€',
            multiply: 0.032
        },
        {
            ISO4217: '₽',
            multiply: 2.6035
        }
    ];
    document.addEventListener('change', function({target}) { console.log(target)
        if(target.closest('#valuta, [name="nameRadio"]')) {
        let option = db[document.querySelector('#valuta').selectedIndex];
        rebuildPrices(option);
			// вывести значения в консоль
		var radioInfo = $('[name="nameRadio"]:checked').attr('data-info');
			
        }
		
	 	
    });

function rebuildPrices({ISO4217, multiply}) {
        const val = document.querySelector('[name="nameRadio"]:checked').value || 1;
        document.querySelector('#rezultatRadio').innerHTML  = val;
        [...document.querySelectorAll('[data-cost]')].forEach(el => {
            const num = el.dataset.cost,
                  span = el.querySelector('span'),
                  limit = el.classList.contains('pricepacketprice') ? Math.floor(num * multiply * val  ) : (num * multiply * val).toFixed(1);
				
				
            span.innerHTML = `${limit} ${ISO4217}`;
			var radioInfo = $('[name="nameRadio"]:checked').attr('data-info');
			//vi
		    vi5p = document.getElementById('vi5').innerHTML;
			vi10p = document.getElementById('vi10').innerHTML;
			vi20p = document.getElementById('vi20').innerHTML;
			vi40p = document.getElementById('vi40').innerHTML;
		    //di
			di5p = document.getElementById('di5').innerHTML;
			di10p = document.getElementById('di10').innerHTML;
			di20p = document.getElementById('di20').innerHTML;
			di40p = document.getElementById('di40').innerHTML;
        })
	
    }

 rebuildPrices(db[0])
});
</script>

Второй калькулятор калькулятор с указанием вручную цен
<script>
 
////////////////////////////////////////////////////////
//vi5
$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vii5').html("12.4€");

     break;
  case "1.483870967741935" :     
      $('#vii5').html("18.4€");
    break;
  };
});

$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vi5').html("62€");
     break;
  case "1.483870967741935" :     
      $('#vi5').html("92€");
    break;
  };
});
//vi10
$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vii10').html("12€");

     break;
  case "1.483870967741935" :     
      $('#vii10').html("17.8€");
    break;
  };
});

$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vi10').html("120€");

     break;
  case "1.483870967741935" :     
      $('#vi10').html("178€");
    break;
  };
});
//vi20
$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vii20').html("11.2€");

     break;
  case "1.483870967741935" :     
      $('#vii20').html("16.6€");
    break;
  };
});

$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vi20').html("236€");

     break;
  case "1.483870967741935" :     
      $('#vi20').html("349€");
    break;
  };
});
//vi40
$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vii40').html("10.9€");

     break;
  case "1.483870967741935" :     
      $('#vii40').html("16.1€");
    break;
  };
});

$("input[type='radio']").change(function(){
switch($(this).val()) {
 case "1" :
    $('#vi40').html("457€");

     break;
  case "1.483870967741935" :     
      $('#vi40').html("676€");
    break;
  };
});
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2022, 15:03
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

c4udok,
Не следует множить сущее без необходимости!!!
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2022, 15:33
Интересующийся
Отправить личное сообщение для c4udok Посмотреть профиль Найти все сообщения от c4udok
 
Регистрация: 08.08.2020
Сообщений: 17

Сообщение от рони Посмотреть сообщение
c4udok,
Не следует множить сущее без необходимости!!!
Как сделать что бы при переключении валюты эта строчка $('#vi40').html("676€"); менялась к примиеру на $('#vi40').html("70$"); либо как то другим способом
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2022, 21:14
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

Сообщение от c4udok
Как сделать что бы при переключении валюты эта строчка $('#vi40').html("676€"); менялась к примиеру на $('#vi40').html("70$"); либо как то другим способом
const cens = [
['#vii5', '12.4€','18.4€' ],
['#vi5','62€' ,'92€'],
['#vii10','12€' ,'17.8€' ],
['#vi10','120€' , '178€'],
['#vii20','11.2€' ,'16.6€' ],
['#vi20','236€' , '349€'],
['#vii40','10.9€' ,'16.1€' ],
['#vi40','457€' ,'676€' ],
]

$("input[type='radio']").change(function(){
	cens.forEach(([id, v1, v2]) => $(id).html($(this).val() == 1? v1 : v2)
});
Ответить с цитированием
  #5 (permalink)  
Старый 05.02.2022, 13:30
Аватар для ANAGAMA
Аспирант
Отправить личное сообщение для ANAGAMA Посмотреть профиль Найти все сообщения от ANAGAMA
 
Регистрация: 29.05.2013
Сообщений: 49

Вдруг поможет

http://dixisolution.ru/Kalkulyator_dlya_sajta_besplatno
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста!!! igrovik Общие вопросы Javascript 40 10.04.2018 13:53
Помогите доработать скрипт хештега alex72bel Общие вопросы Javascript 1 20.09.2015 23:20
Помогите пожалуйста доработать код AntonMs Общие вопросы Javascript 3 15.06.2015 16:18
select - тег помогите доработать скрипт пожалуйста Svetik-top Элементы интерфейса 3 25.03.2015 18:12
Помогите пожалуйста правильно написать скрипт raffx Events/DOM/Window 17 16.10.2012 20:31