Добрый день.
Помогите с задачей, я в тупике уже.
В общем надо подгружать товары в каталоге. Каталог разбит на категории и используется умный фильтр.
При прокрутке я хочу подгружать через ajax данные следующих страниц.
Сам файл, который должен отдавать каталог через ajax вот тут:
Если подключать только catalog.section, то он отдает часть нефильтрованного каталога.
Но если подключить умный фильтр, которым вроде бы надо отфильтровать этот каталог, то вывода вообще нет. Как будто в это фильтре где-то die() срабатывает.
Подскажите в чем может быть проблема. Или может я вообще не так действую?
Заранее благодарен
Помогите с задачей, я в тупике уже.
В общем надо подгружать товары в каталоге. Каталог разбит на категории и используется умный фильтр.
При прокрутке я хочу подгружать через ajax данные следующих страниц.
Код |
---|
<sc ript> /*AJAX прогрузка*/ $(document).ready(function(){ var startFrom = 2; var inProgress = false; $(window).scroll(function() { if($(window).scrollTop() + $(window).height() >= $(document).height() - 600 && !inProgress) { console.log('before send'); $.ajax({ url: '/ajax/getCatalogData.php', method: 'POST', data: { "PAGEN_1" : startFrom, "arCurSectionID" :<?php echo $arCurSection['ID']; ?>, "xml": "<?php echo $xml; ?>", "arParams":<?php echo json_encode($arParams); ?>, "SECTION_CODE":"<?php echo $arResult["VARIABLES"]["SECTION_CODE"]; ?>" }, beforeSend: function() { inProgress = true; } }).complete(function(data){ console.log('data loaded'); $(".catalog__wrap-goods").append(data.responseText); startFrom += 1; inProgress = false; }); } }); }); </sc ript> |
Сам файл, который должен отдавать каталог через ajax вот тут:
Код |
---|
<?php /* retrieves product catalog via ajax */ define("NO_KEEP_STATISTIC", true); define("NO_AGENT_CHECK", true); define('PUBLIC_AJAX_MODE', true); require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php"); $_SESSION["SESS_SHOW_INCLUDE_TIME_EXEC"]="N"; $APPLICATION->ShowIncludeStat = false; global $APPLICATION; if (isset($_POST)) { $arParams = $_POST['arParams']; ob_start(); CModule::IncludeModule("iblock"); $arFilterST = Array('IBLOCK_ID'=>4, 'ACTIVE'=>'Y', 'ID' => $SPID); $db_listST = CIBlockSection::GetList(Array($byS=>$orderS), $arFilterST, true, Array("UF_ID_TYPE")); while($ar_resultST = $db_listST->GetNext()){ $found = true; $SPPID= $ar_resultST['IBLOCK_SECTION_ID']; } if ('Y' == $arParams['USE_FILTER'] && $found ){ $APPLICATION->IncludeComponent( "custom:catalog.smart.filter", "inew-filter", Array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "SECTION_ID" => $_POST['arCursectionID'], "SECTION_XML" => $_POST['xml'], "FILTER_NAME" => $arParams["FILTER_NAME"], "PRICE_CODE" => array('для интернет-магазина'), "CACHE_TYPE" => "A", "CACHE_TIME" => "36000000", "CACHE_NOTES" => "", "CACHE_GROUPS" => "Y", "SAVE_IN_SESSION" => "N", "XML_EXPORT" => "Y", "SECTION_TITLE" => "NAME", "SECTION_DESCRIPTION" => "DESCRIPTION", "SHOW_ALL_WO_SECTION" => "Y" ), null, array() ); } $by='name'; $sort = 'ASC'; $APPLICATION->IncludeComponent( "custom:catalog.section", 'visual', array( "IBLOCK_TYPE" => $arParams["IBLOCK_TYPE"], "IBLOCK_ID" => $arParams["IBLOCK_ID"], "ELEMENT_SORT_FIELD" => $by, "ELEMENT_SORT_ORDER" => $sort, "ELEMENT_SORT_FIELD2" => '', "ELEMENT_SORT_ORDER2" => '', "PROPERTY_CODE" => Array(), "META_KEYWORDS" => $arParams["LIST_META_KEYWORDS"], "META_DESCRIPTION" => $arParams["LIST_META_DESCRIPTION"], "BROWSER_TITLE" => $arParams["LIST_BROWSER_TITLE"], "INCLUDE_SUBSECTIONS" => $arParams["INCLUDE_SUBSECTIONS"], "BASKET_URL" => $arParams["BASKET_URL"], "ACTION_VARIABLE" => $arParams["ACTION_VARIABLE"], "PRODUCT_ID_VARIABLE" => $arParams["PRODUCT_ID_VARIABLE"], "SECTION_ID_VARIABLE" => $arParams["SECTION_ID_VARIABLE"], "PRODUCT_QUANTITY_VARIABLE" => $arParams["PRODUCT_QUANTITY_VARIABLE"], "PRODUCT_PROPS_VARIABLE" => $arParams["PRODUCT_PROPS_VARIABLE"], "FILTER_NAME" => 'searchFilter', "CACHE_TYPE" => $arParams["CACHE_TYPE"], "CACHE_TIME" => $arParams["CACHE_TIME"], "CACHE_FILTER" => $arParams["CACHE_FILTER"], "CACHE_GROUPS" => $arParams["CACHE_GROUPS"], "SET_TITLE" => $arParams["SET_TITLE"], "SET_STATUS_404" => $arParams["SET_STATUS_404"], "DISPLAY_COMPARE" => $arParams["USE_COMPARE"], "PAGE_ELEMENT_COUNT" => 48, "LINE_ELEMENT_COUNT" => 4, "PRICE_CODE" => $arParams["PRICE_CODE"], "USE_PRICE_COUNT" => $arParams["USE_PRICE_COUNT"], "SHOW_PRICE_COUNT" => $arParams["SHOW_PRICE_COUNT"], "PRICE_VAT_INCLUDE" => $arParams["PRICE_VAT_INCLUDE"], "USE_PRODUCT_QUANTITY" => $arParams['USE_PRODUCT_QUANTITY'], "PRODUCT_PROPERTIES" => Array(), "DISPLAY_TOP_PAGER" => $arParams["DISPLAY_TOP_PAGER"], "DISPLAY_BOTTOM_PAGER" => $arParams["DISPLAY_BOTTOM_PAGER"], "PAGER_TITLE" => $arParams["PAGER_TITLE"], "PAGER_SHOW_ALWAYS" => $arParams["PAGER_SHOW_ALWAYS"], "PAGER_TEMPLATE" => $arParams["PAGER_TEMPLATE"], "PAGER_DESC_NUMBERING" => $arParams["PAGER_DESC_NUMBERING"], "PAGER_DESC_NUMBERING_CACHE_TIME" => $arParams["PAGER_DESC_NUMBERING_CACHE_TIME"], "PAGER_SHOW_ALL" => $arParams["PAGER_SHOW_ALL"], "OFFERS_CART_PROPERTIES" => $arParams["OFFERS_CART_PROPERTIES"], "OFFERS_FIELD_CODE" => $arParams["LIST_OFFERS_FIELD_CODE"], "OFFERS_PROPERTY_CODE" => $arParams["LIST_OFFERS_PROPERTY_CODE"], "OFFERS_SORT_FIELD" => $arParams["OFFERS_SORT_FIELD"], "OFFERS_SORT_ORDER" => $arParams["OFFERS_SORT_ORDER"], "OFFERS_SORT_FIELD2" => $arParams["OFFERS_SORT_FIELD2"], "OFFERS_SORT_ORDER2" => $arParams["OFFERS_SORT_ORDER2"], "OFFERS_LIMIT" => $arParams["LIST_OFFERS_LIMIT"], "SECTION_ID" => "", "SECTION_CODE" => $_POST['SECTION_CODE'], "SECTION_URL" => '/catalog/#SECTION_CODE#/', "DETAIL_URL" => '/catalog/#ELEMENT_CODE#.html', 'CONVERT_CURRENCY' => $arParams['CONVERT_CURRENCY'], 'CURRENCY_ID' => $arParams['CURRENCY_ID'], 'HIDE_NOT_AVAILABLE' => $arParams["HIDE_NOT_AVAILABLE"], 'LABEL_PROP' => $arParams['LABEL_PROP'], 'ADD_PICT_PROP' => $arParams['ADD_PICT_PROP'], 'PRODUCT_DISPLAY_MODE' => $arParams['PRODUCT_DISPLAY_MODE'], 'OFFER_ADD_PICT_PROP' => $arParams['OFFER_ADD_PICT_PROP'], 'OFFER_TREE_PROPS' => $arParams['OFFER_TREE_PROPS'], 'PRODUCT_SUBSCRIPTION' => $arParams['PRODUCT_SUBSCRIPTION'], 'SHOW_DISCOUNT_PERCENT' => $arParams['SHOW_DISCOUNT_PERCENT'], 'SHOW_OLD_PRICE' => $arParams['SHOW_OLD_PRICE'], 'MESS_BTN_BUY' => $arParams['MESS_BTN_BUY'], 'MESS_BTN_ADD_TO_BASKET' => $arParams['MESS_BTN_ADD_TO_BASKET'], 'MESS_BTN_SUBSCRIBE' => $arParams['MESS_BTN_SUBSCRIBE'], 'MESS_BTN_DETAIL' => $arParams['MESS_BTN_DETAIL'], 'MESS_NOT_AVAILABLE' => $arParams['MESS_NOT_AVAILABLE'], ), null ); $result=ob_get_clean(); echo $result; } ?> |
Если подключать только catalog.section, то он отдает часть нефильтрованного каталога.
Но если подключить умный фильтр, которым вроде бы надо отфильтровать этот каталог, то вывода вообще нет. Как будто в это фильтре где-то die() срабатывает.
Подскажите в чем может быть проблема. Или может я вообще не так действую?
Заранее благодарен