ДОБрый день! подскажите пожалуйста в чем мой косяк может быть. код выполняется но с ошибкой.
вообщем есть стандартная корзина на решении битрикса. туда нужно дописать невозможность оформить суммой корзины менее 1000 руб, то есть если эта сумма менее 1000 ру надпись "сумма корзины менее 1000 руб" и если более тогда кнопка оформить заказ. при этом в стандартной корзине уже есть функционал что по клику на + и - у товара сумма корзины увеличивается, так что мне нужно чтобы при клике на эти плюсы и минусы моя надпись/кнопка также менялись в соответствии с новой суммой. решил осуществить это с помощью
.load
Плюс, минус и спан где меняется ответ в стандартном решении выглядит следующим образом
<a href="#" class="minus" data-id="50"></a>
<input name="qty" type="text" value="1" class="qty" data-max-quantity="80" data-id="50" data-ratio="1">
<a href="#" class="plus" data-id="50"></a>
<span id="allSum">1 280 руб.</span>
написал скрипт следующего содержания
<script type="text/javascript">
$('.plus').click(function {
$("#bookbutcart").load("/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php"); // замена области в этом файле
});
$('.minus').click(function {
$("#bookbutcart").load("/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php"); // замена области в этом файле
});
</script>
Где в файле bookbutoon_cart.php находится код вывода корзины и область на которую заменяется ранее выведеная кнопка/тект. код прилагаю
<?
CModule::IncludeModule("sale");
$arBasketItems = array();
$dbBasketItems = CSaleBasket::GetList(
array("NAME" => "ASC","ID" => "ASC"),
array("FUSER_ID" => CSaleBasket::GetBasketUserID(), "LID" => SITE_ID, "ORDER_ID" => "NULL"),
false,
false,
array("ID","MODULE","PRODUCT_ID","QUANTITY","CAN_BUY","PRICE"));
while ($arItems=$dbBasketItems->Fetch())
{
$arItems=CSaleBasket::GetByID($arItems["ID"]);
$arBasketItems[]=$arItems;
$cart_num+=$arItems['QUANTITY'];
$cart_sum+=$arItems['PRICE']*$arItems['QUANTITY'];
}
if (empty($cart_num))
$cart_num="0";
if (empty($cart_sum))
$cart_sum="0";
?>
<?/*
В вашей корзине <?=$cart_num?> товаров.На сумму <?=$cart_sum?> рублей
*/?>
<div id="bookbutcart">
<?if ($cart_sum<1000) {?>
Сумма заказа должна быть не менее 1000 руб
<?}
else {?>
<a href="<?=SITE_DIR?>personal/cart/order/" id="newOrder" class="selected"><img src="<?=SITE_TEMPLATE_PATH?>/images/order.png">Оформить заказ</a>
<?}?>
</div>
код рабочий и все в принципе работает, НО!!! возвращается значение на один клик меньше. чтобы было понятнее приложу скрин
чтобы исправить эту проблему пробовал привязать к функции settimeout такого рода
function func() {
alert( 'Привет' );
}
setTimeout(func, 1000);
пробовал также через аякс передавать значение на тот файл где load, код ниже
<script type="text/javascript">
$('.plus').click(function (){
$.ajax({
type: "POST",
url: "/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php",
data: ({summ:$('#allSum').text()}),
cache: false,
success: function(data) {
$("bookbutcart").load("/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php"); // замена области в этом файле
},
});
});
$('.minus').click(function (){
$.ajax({
type: "POST",
url: "/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php",
data: ({summ:$('#allSum').text()}),
cache: false,
success: function(data) {
$("bookbutcart").load("/bitrix/templates/dresscode/components/dresscode/sale.basket.basket/standartOrder/bookbutoon_cart.php"); // замена области в этом файле
},
});
});
</script>
но передается значение опять же на шаг меньше... ГОспода знатоки, помогите, как можно было бы решить данную проблему?