Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.09.2014, 15:08
Интересующийся
Отправить личное сообщение для landerorly Посмотреть профиль Найти все сообщения от landerorly
 
Регистрация: 05.05.2014
Сообщений: 23

Помогите разобраться со счетчиком кол-ва товаров
Доброго времени суток. Проблема такова, есть таблица товаров: http://joxi.ru/CHsRVP3JTJCcfJwntko , нужно чтобы счетчик кол-ва первого товара в ней начинался с 1 сразу при попадании на эту страницу, те как-бы первый товар по дефолту уже являлся купленным и лежал в корзине в количестве как минимум одной штуки а его цена была учтена в общей сумме вот так: http://joxi.ru/s3wRVIwyTJDnAiC13nU

Моих познаний пока хватило только найти куски кода что все это хозяйство реализуют, но разобрать эти "награмождения" я пока не в состоянии:

<td class="cell_salesPrice"><div id="salesPrice_text_0"><div class="PricesalesPrice" style="display : block;" ><span class="PricesalesPrice" >230 р.</span></div></div></td><td class="cell_quantity">
				<span class="quantity-box"><input class="quantity-input js-recalculate" size="2" id="quantity_0" name="quantity[]" value="0" type="text" onblur='changeQuantity(0, "input", 0, 0, "")'></span>
				<span class="quantity-controls js-recalculate"><input class="quantity-controls quantity-plus" onclick='changeQuantity(0, "plus", 0, 0, "")' type="button">
				<input class="quantity-controls quantity-minus" onclick='changeQuantity(0, "minus", 0, 0, "")' type="button"></span>
				</td>


if ($check_stock == 1 && $product['child']['product_in_stock'] > 0 || $check_stock == 0){
			//Quantity
			// min max box quantity
			$min_order_level = '0';
			$max_order_level = '0';
			$product_box = '0';
			if (isset($product['qparam'])) {
				$min_order_level = $product['qparam']['min'];
				$max_order_level = $product['qparam']['max'];
				$product_box = $product['qparam']['box'];
			}
			// min max box end
			if (!VmConfig::get('use_as_catalog', 0)  ) {
				if (!$callforprice) {
				echo '<td class="cell_quantity">
				<span class="quantity-box"><input class="quantity-input js-recalculate" size="2" id="quantity_'.$i.'" name="quantity[]" value="0" type="text" onblur=\'changeQuantity('.$i.', "input", '.$min_order_level.', '.$max_order_level.', '.$product_box .')\'></span>
				<span class="quantity-controls js-recalculate"><input class="quantity-controls quantity-plus" onclick=\'changeQuantity('.$i.', "plus", '.$min_order_level.', '.$max_order_level.', '.$product_box .')\' type="button">
				<input class="quantity-controls quantity-minus" onclick=\'changeQuantity('.$i.', "minus", '.$min_order_level.', '.$max_order_level.', '.$product_box .')\' type="button"></span>
				</td>';
				} else {
				echo '<td class="cell_quantity">
				<a class="ask-a-question bold" href="'.$callforprice_url.'" rel="nofollow" >'.JText::_ ('COM_PRODUCT_ASKPRICE').'</a>
				</td>';
				}
			}


function changeQuantity (noQ, funcQ, minQ, maxQ, boxQ) {
	var qty_el = document.getElementById('quantity_'+noQ);
	var qty = qty_el.value;
	minQ = parseFloat(minQ);
	maxQ = parseFloat(maxQ);
	boxQ = parseFloat(boxQ);
	qty = parseFloat(qty);
	if (funcQ == "minus") {
		if (minQ && minQ > 0) {
			if (qty <= minQ) {
				qty = 0;
			}
			else if (maxQ && qty > maxQ) {
				qty = maxQ;
			}
			else {
				if (boxQ && boxQ > 0) {
					if ((qty%boxQ) != 0) {
						qty -= (qty%boxQ);
					}
					else {			
						qty -= boxQ;
					}
				}
				else
					qty--;
			}
		}
		else {
			if ( !isNaN( qty ) && qty > 0 ) {
				if (boxQ && boxQ > 0) {
					if ((qty%boxQ) != 0) {
						qty -= (qty%boxQ);
					}
					else {
						qty -= boxQ;
					}
				}
				else
					qty--;
			}
			else if (qty < 0)
				qty = 0;
		}
	}
	if (funcQ == "plus") {
		if (maxQ && maxQ > 0) {
			if (qty >= maxQ) {
				qty = maxQ;
			}
			else if (qty == 0 && minQ && minQ > 0) {
				qty = minQ;
			}
			else if (qty < 0) {
				qty = 0;
			}
			else {
				if (boxQ && boxQ > 0) {
					if ((qty%boxQ) != 0) {
						qty += (boxQ-(qty%boxQ));
					}
					else {
						qty += boxQ;
					}
				}
				else
					qty++;
			}
		}
		else {
			if ( !isNaN( qty ) && qty >= 0) {
				if (boxQ && boxQ > 0) {
					if ((qty%boxQ) != 0) {
						qty += (boxQ-(qty%boxQ));
					}
					else {
						qty += boxQ;
					}
				}
				else
					qty++;
			}
			else 
				qty = 0;
		}
	}
	if (funcQ == "input") {
		if (maxQ && maxQ > 0 && qty >= 0) {
			if (qty >= maxQ) {
				qty = maxQ;
			}
			else {
				if (boxQ && boxQ > 0) {
					if ((qty%boxQ) != 0) {
						qty += (boxQ-(qty%boxQ));
					}
				}
			}
		}
		if (qty <= 0) {
			qty = 0;
		}
	}
 
	qty_el.value = qty;
	if (updateprice == 1) {
		getPrice (noQ);
	}
	else {
		updateSumPrice(noQ);
	}
	return false;
}
Ответить с цитированием
  #2 (permalink)  
Старый 11.09.2014, 15:26
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Сделайте програмный клик по плюсику на онлоад и все.

window.onload = function () {
  document.querySelector("selector").click();
}


А лучше - перепишите код добавления с 0, а то он страшный.
Ответить с цитированием
  #3 (permalink)  
Старый 11.09.2014, 16:01
Интересующийся
Отправить личное сообщение для landerorly Посмотреть профиль Найти все сообщения от landerorly
 
Регистрация: 05.05.2014
Сообщений: 23

Честно попробовал разобраться в том что вы посоветовали, но пока смог разобрать, что вместо "selector" надо ставить (в моем случае) что-то вроде: "input.quantity-plus", но что подставить в остальные скобки/функции и пр., не понял. Простите уж неграмотного, я только учусь...
Ответить с цитированием
  #4 (permalink)  
Старый 11.09.2014, 16:24
Интересующийся
Отправить личное сообщение для landerorly Посмотреть профиль Найти все сообщения от landerorly
 
Регистрация: 05.05.2014
Сообщений: 23

Все спасибо добрый человек, + те "в репу"
Ответить с цитированием
  #5 (permalink)  
Старый 11.09.2014, 16:34
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Цитата:
но что подставить в остальные скобки/функции и пр., не понял.
Больше ничего не надо.

<table>
  <tr>
    <td>Наименование товара</td>
    <td>Цена</td>
    <td></td>
  </tr>
  <tr>
    <td>Золотой вантус с платиновой насадкой</td>
    <td>100000</td>
    <td><input class="by" type="button" data-price="100000" value="Купить"></td>
  </tr>
</table>

Итого:
<input class="output" type="text" value="0" readonly>

<script>

var $ = function (selector) {
  return document.querySelector(selector)
};

$(".by").addEventListener("click", function () {

   $(".output").value = parseInt($(".output").value, 10) + parseInt(this.getAttribute("data-price"), 10);
  
    alert("Поздравляем первого обладателя золотого вантуса!");

}, false);

$(".by").click();

</script>


Эх.. Долго писал..

Последний раз редактировалось tsigel, 11.09.2014 в 16:37.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получение ответа сервера через iframe и xhr. Помогите разобраться. Arconas AJAX и COMET 0 26.02.2013 10:38
Помогите разобраться с регуляркой shtormIK Общие вопросы Javascript 6 26.06.2012 20:02
Помогите разобраться с кодом. TheWanderer Общие вопросы Javascript 10 17.04.2010 13:41
Помогите пожалуйста разобраться Kupu4 Ваши сайты и скрипты 0 21.01.2010 10:44
Помогите разобраться с галереей IMAGIN yana_studio Общие вопросы Javascript 4 12.12.2009 17:24