Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Динамическое изменение цены (https://javascript.ru/forum/dom-window/8240-dinamicheskoe-izmenenie-ceny.html)

originalpr 16.03.2010 13:11

Динамическое изменение цены
 
Доброго дня!

Стоит задача динамического изменения цены, как пример вот это:
http://sansmail.ru/vmchk/Smesiteli-d...Arc-26000.html
т.е. при увеличении количества динамически изменяется сумма.
В самом движке такой функции нет. Есть шаблон, в котором прописываются функции корзины.
function p_cnt(counter1) // price counter
{
        var price=parseInt(document.getElementById("price").value);
		var qty_el = document.getElementById('quantity<?php echo $product_id ?>').value; 
		price*=parseInt(qty_el);	
		for(j=0;j<0;j++)
		{
	        for(k=1; k<=parseInt(document.getElementById("count_ch"+j+"_1").value); k++) 
    	       eval ("if (document.getElementById('ch"+j+"_"+k+"').checked) price+=parseInt(document.getElementById('ch"+j+"_value_"+k+"').value)");		
		}
		for(j=2;j<2;j++)
			{
			if (x=document.getElementById('in'+j).selectedIndex)
				eval ("if (document.getElementById('in_value"+j+"_'+x+'').value) price+=parseInt(document.getElementById('in_value"+j+"_'+x+'').value)");				
//	           price+=parseInt(document.getElementById('in_value2_'+x+'').value)
//           eval ("if (document.all.in_"+k+".checked) price+=parseInt(document.all.in_value_"+k+".value)");		
			}
		   document.getElementById("itogo").value=price;
		
}
function do_count(){
	if (document.getElementById("count1"))
		p_cnt(document.getElementById("count1").value);
	else
	p_cnt(1);
}
function do_count_plus(){
var qty_el = document.getElementById('quantity<?php echo $product_id ?>'); 
var qty = qty_el.value; if( !isNaN( qty )) qty_el.value++;
do_count();
return false;	
}
function do_count_minus(){
var qty_el = document.getElementById('quantity<?php echo $product_id ?>');
var qty = qty_el.value; 
if( !isNaN( qty ) && qty > 1 ) qty_el.value--;	
do_count();
return false;
}

Игрался с переменной do count, но пришел в тупик :(

subzey 16.03.2010 15:17

Добавьте инпуту параметр
onkeyup="do_count()"


Кстати, код страшненький. Джумла что ли?

originalpr 16.03.2010 16:00

Спасибо! Код страшный не спорю, тут за его чистоту не боремся. Это Joomla все верно.
А какому инпуту добавлять? Просто не совсем ясно как параметр получит инфу о цене и что ее нужно увеличить в н-раз.

subzey 16.03.2010 20:26

В тот, в котором непосредственно значение и меняется.

originalpr 18.03.2010 12:09

Что-то я туго соображаю в этом вопросе. Не могли бы помочь со скриптом, само собой не за воздух. Есть платный плагин, но в лом покупать его за бугром.
Нужно дописать этот скрипт для Virtuemart. Если интересно - можем пообщаться через почту или ICQ


Часовой пояс GMT +3, время: 18:11.