Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Цикл для DIV

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Некорректно работает цикл, если поставить div
Гость
Отправлено: 16 Ноября, 2016 - 11:23:55
Post Id


УДАЛЁН










Добрый день!

Такая проблема. Есть код, который выполняет добавление вещи в корзину.

<?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();
/** @var array $arParams */
/** @var array $arResult */
/** @global CMain $APPLICATION */
/** @global CUser $USER */
/** @global CDatabase $DB */
/** @var CBitrixComponentTemplate $this */
/** @var string $templateName */
/** @var string $templateFile */
/** @var string $templateFolder */
/** @var string $componentPath */
/** @var CBitrixComponent $component */

if(empty($arResult['ITEMS']))
return;


?>

<div class = "pokupka">

<?

$strElementEdit = CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_EDIT");
$strElementDelete = CIBlock::GetArrayByID($arParams["IBLOCK_ID"], "ELEMENT_DELETE");
$arElementDeleteParams = array("CONFIRM" => GetMessage('OS_ELEMENT_DELETE_CONFIRM'));
$item = 0;

foreach($arResult['ITEMS'] as $key => $arItem):
$boolDiscountShowtemp = ($arItem["PROPERTIES"]["TSENA"]["VALUE"] <= ($arItem['MIN_PRICE']['DISCOUNT_VALUE']));
if($boolDiscountShowtemp==true)
{
continue;
}
if ($item !=0 && $item % 10 == 0)
{
echo '</div><div class="item">';
}
$this->AddEditAction($arItem['ID'], $arItem['EDIT_LINK'], $strElementEdit);
$this->AddDeleteAction($arItem['ID'], $arItem['DELETE_LINK'], $strElementDelete, $arElementDeleteParams);
// echo "<pre style='text-align:left;'>";print_r($arItem);echo "</pre>";
// $strMainID = $this->GetEditAreaId($arItem['ID']);

$strMainID = "{$arParams["TAB_BLOCK"]}_{$arItem['ID']}";
$arItemIDs = array(
'ID' => $strMainID,
'PICT' => $strMainID.'_pict',
'SECOND_PICT' => $strMainID.'_secondpict',
'STICKER_ID' => $strMainID.'_sticker',
'SECOND_STICKER_ID' => $strMainID.'_secondsticker',
'QUANTITY' => $strMainID.'_quantity',
'QUANTITY_DOWN' => $strMainID.'_quant_down',
'QUANTITY_UP' => $strMainID.'_quant_up',
'QUANTITY_MEASURE' => $strMainID.'_quant_measure',
'BUY_LINK' => $strMainID.'_buy_link',
'COMPARE_LINK' => $strMainID.'_compare_link',
'SUBSCRIBE_LINK' => $strMainID.'_subscribe',
'OLD_PRICE' => $strMainID.'_old_price',
'PRICE' => $strMainID.'_price',
'DSC_PERC' => $strMainID.'_dsc_perc',
'SECOND_DSC_PERC' => $strMainID.'_second_dsc_perc',

'PROP_DIV' => $strMainID.'_sku_tree',
'PROP' => $strMainID.'_prop_',
'DISPLAY_PROP_DIV' => $strMainID.'_sku_prop',
'BASKET_PROP_DIV' => $strMainID.'_basket_prop',
);

$strObName = 'ob'.preg_replace("/[^a-zA-Z0-9_]/", "x", $strMainID);

/* !!! VERYIMPORTANT[IMG] ?><div - without space!!! */

?>

<?$boolDiscountShow = ($arItem["PROPERTIES"]["TSENA"]["VALUE"]);?>
<div>

<div class = "pokupka_item" id="<?=$strMainID?>">
<div class="pokupka_img">
<img id="<?=$arItemIDs['PICT']?>" src="<?=$arItem['PICTURE_PRINT']?>" alt="<?=$arItem['NAME']?>" title="<?=$arItem['NAME']?>" >
</div>
<div>
<a href="<?=$arItem['DETAIL_PAGE_URL']?>" class = "pokupka_link"><?=$arItem['NAME']?></a>
<div class = "old_price" id="<?=$arItemIDs['OLD_PRICE']?>" style="display: <? echo ($boolDiscountShow ? '' : 'none'); ?>"><?=($boolDiscountShow ? str_replace(',', '.', $arItem["PROPERTIES"]["TSENA"]["VALUE"]) : '');?>
<span class="b-rub"><?=GetMessage('OS_RUB_SYMBOL')?></span>
</div>
<div class = "pokupka_botton">
<span id="<?=$arItemIDs['PRICE']?>" class = "new_price"><?=$arItem['MIN_PRICE']['DISCOUNT_VALUE'] / $arItem['CATALOG_MEASURE_RATIO']?><span class="b-rub">Р</span></span>
<button id="<?=$arItemIDs['BUY_LINK']?>" class="basket">Купить</button>
</div>
</div>
</div><!-- /catalog-item -->

<?

$emptyProductProperties = empty($arItem['PRODUCT_PROPERTIES']);
$arJSParams = array(
'PRODUCT_TYPE' => $arItem['CATALOG_TYPE'],
'SHOW_QUANTITY' => $arParams['USE_PRODUCT_QUANTITY'],
'SHOW_ADD_BASKET_BTN' => false,
'SHOW_BUY_BTN' => true,
'SHOW_ABSENT' => true,
'PRODUCT' => array(
'ID' => $arItem['ID'],
'NAME' => $arItem['NAME'],
'PICT' => array('SRC'=> $arItem['PICTURE_PRINT']),
'CAN_BUY' => $arItem["CAN_BUY"],
'SUBSCRIPTION' => ('Y' == $arItem['CATALOG_SUBSCRIPTION']),
'CHECK_QUANTITY' => $arItem['CHECK_QUANTITY'],
'MAX_QUANTITY' => $arItem['CATALOG_QUANTITY'],
'STEP_QUANTITY' => $arItem['CATALOG_MEASURE_RATIO'],
'QUANTITY_FLOAT' => is_double($arItem['CATALOG_MEASURE_RATIO']),
'ADD_URL' => $arItem['ADD_URL'],
'COMPARE_URL' => $arItem['COMPARE_URL'],
'SUBSCRIBE_URL' => $arItem['~SUBSCRIBE_URL']
),
'BASKET' => array(
'ADD_PROPS' => ('Y' == $arParams['ADD_PROPERTIES_TO_BASKET']),
'QUANTITY' => $arParams['PRODUCT_QUANTITY_VARIABLE'],
'PROPS' => $arParams['PRODUCT_PROPS_VARIABLE'],
'EMPTY_PROPS' => $emptyProductProperties
),
'VISUAL' => array(
'ID' => $arItemIDs['ID'],
'PICT_ID' => $arItemIDs['PICT'],
'QUANTITY_ID' => $arItemIDs['QUANTITY'],
'QUANTITY_UP_ID' => $arItemIDs['QUANTITY_UP'],
'QUANTITY_DOWN_ID' => $arItemIDs['QUANTITY_DOWN'],
'PRICE_ID' => $arItemIDs['PRICE'],
'BUY_ID' => $arItemIDs['BUY_LINK'],
'COMPARE_ID' => $arItemIDs['COMPARE_LINK'],
'BASKET_PROP_DIV' => $arItemIDs['BASKET_PROP_DIV']
),
'LAST_ELEMENT' => $arItem['LAST_ELEMENT']
);
unset($emptyProductProperties);

?><script type="text/javascript">var <?=$strObName?> = new JCCatalogSection(<? echo CUtil::phpToJSObject($arJSParams, false, true); ?>);</script>


</div><?$item++;endforeach?>
<?/* !!! VERY IMPORTANT </div><? - without space!!! */?>

</div>
<!-- /catalog-blocks -->
</div>

Вот java script для div

$(document).ready(function(){
$(".pokupka").slick({ infinite: true, slidesToShow: 3, slidesToScroll: 1, responsive: [ { breakpoint: 1200, settings: { slidesToShow: 2 } }, { breakpoint: 856, settings: { slidesToShow: 1 } } ]});
$(WINDOW[IMG]).scroll(function(){
if ($ WINDOW).scrollTop()>705) {
$('.up').addClass('vis');
}
else {
$('.up').removeClass('vis');
}
});
$('.up').click(function () {
$('body,html').animate({
scrollTop: 0}, 600); return false;
});

Этот цикл при нажатие на один товар, добавляет его дважды в корзину.
НО! Если убрать вот этот div <div class = "pokupka">, то он добавляет товар один раз как и должен.
Что сделать ,чтобы он выполнялся один раз, не убирая этот div.

Спасибо!
 
 Top
Denkill
Отправлено: 27 Ноября, 2016 - 11:07:35
Post Id



Посетитель


Покинул форум
Сообщений всего: 330
Дата рег-ции: Янв. 2013  
Откуда: Барнаул


Помог: 7 раз(а)




а на батоне висит какой нибудь обработчик?

CODE (html):
скопировать код в буфер обмена
  1. <button id="<?=$arItemIDs['BUY_LINK']?>" class="basket">Купить</button>


-----
Хо-Хо-Хо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB