Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Непонятное формирование массива фильтра arrFilter

00 голосов
5
Привет, сообщество!

Делаю фильтрацию по числовому полю, задавая в url

Код
?arrFilter_pf[HEIGHT]=15&set_filter=Y


mydump($arrFilter) мне выдает такую штуку -

Код
array(1) => 
 [PROPERTY] =>
     array(2) => 
     [>=HEIGHT] =>
         integer(1)
     [<=HEIGHT] =>
         double(1)


и фильтр ничего естественно не отбирает. В то же время фильтрация по символьному полю вида
Код
?arrFilter_pf[STATUS]=Новинка&set_filter=Y

работает на раз-два.

Что я не так делаю?
спросил 28 Июль, 13 от Waicon (280 баллов)

5 Ответы

00 голосов
Кто нибудь?
ответил 28 Июль, 13 от Waicon (280 баллов)
00 голосов
Если честно, не понятно кто за Вас в данном случае превращает параметры из GET в PHP-массив фильтра.
Нужно самостоятельно это сделать:

Код
$arFilter = array(
  "PROPERTY_HEIGHT" => $_GET["arrFilter_pf"][HEIGHT]
);


Но лучше arrFilter_pf[HEIGHT] в запросе изменить на что-то попроще, например, просто height=15
ответил 24 Сен, 13 от SleepLess (1,220 баллов)
00 голосов
Цитата
Денис Сон пишет:
Если честно, не понятно кто за Вас в данном случае превращает параметры из GET в PHP-массив фильтра.
Нужно самостоятельно это сделать:
Код
$arFilter = array(
&nbsp;&nbsp;"PROPERTY_HEIGHT" => $_GET["arrFilter_pf"][HEIGHT]
);


Но лучше arrFilter_pf[HEIGHT] в запросе изменить на что-то попроще, например, просто height=15


Спасибо, Денис, но не работает.

Срабатывает перед GetList, но не перед bitrix:catalog

Прилагаю и его тоже, может в его параметрах ошибка


Код
 <?

$arrFilter = array( 
  "PROPERTY_HEIGHT" => $_GET["height_u"],
);

$APPLICATION->IncludeComponent(
   "bitrix:catalog",
   "template",
   Array(
      "AJAX_MODE" => "N",
      "SEF_MODE" => "Y",
      "IBLOCK_TYPE" => "xmlcatalog",
      "IBLOCK_ID" => "8",
      "USE_FILTER" => "Y",
      "USE_REVIEW" => "N",
      "USE_COMPARE" => "N",
      "SHOW_TOP_ELEMENTS" => "N",
      "PAGE_ELEMENT_COUNT" => "5",
      "LINE_ELEMENT_COUNT" => "1",
      "ELEMENT_SORT_FIELD" => "name",
      "ELEMENT_SORT_ORDER" => "asc",
      "LIST_PROPERTY_CODE" => Array("HEIGHT","WIDTH","GLUB","FRONT"),
      "INCLUDE_SUBSECTIONS" => "Y",
      "LIST_META_KEYWORDS" => "-",
      "LIST_META_DESCRIPTION" => "-",
      "LIST_BROWSER_TITLE" => "UF_BROWSER_TITLE",
      "DETAIL_PROPERTY_CODE" => Array("ACCESSORIES","FILES","HEIGHT","WIDTH","GLUB"),
      "DETAIL_META_KEYWORDS" => "-",
      "DETAIL_META_DESCRIPTION" => "-",
      "DETAIL_BROWSER_TITLE" => "BROWSER_TITLE",
      "BASKET_URL" => "/personal/cart/",
      "ACTION_VARIABLE" => "action",
      "PRODUCT_ID_VARIABLE" => "id",
      "SECTION_ID_VARIABLE" => "SECTION_ID",
      "DISPLAY_PANEL" => "Y",
      "CACHE_TYPE" => "A",
      "CACHE_TIME" => "3600",
      "CACHE_FILTER" => "N",
      "SET_TITLE" => "Y",
      "SET_STATUS_404" => "Y",
      "PRICE_CODE" => Array("BASE","Розница","WHOLESALE"),
      "USE_PRICE_COUNT" => "N",
      "SHOW_PRICE_COUNT" => "1",
      "PRICE_VAT_INCLUDE" => "Y",
      "PRICE_VAT_SHOW_VALUE" => "N",
      "LINK_IBLOCK_TYPE" => "",
      "LINK_IBLOCK_ID" => "",
      "LINK_PROPERTY_SID" => "",
      "LINK_ELEMENTS_URL" => "",
      "USE_ALSO_BUY" => "N",
      "DISPLAY_TOP_PAGER" => "Y",
      "DISPLAY_BOTTOM_PAGER" => "Y",
      "PAGER_TITLE" => "Товары",
      "PAGER_SHOW_ALWAYS" => "N",
      "PAGER_TEMPLATE" => "cmo",
      "PAGER_DESC_NUMBERING" => "N",
      "PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
      "PAGER_SHOW_ALL" => "Y",
      "FILTER_NAME" => "arrFilter",
      "FILTER_FIELD_CODE" => Array(),
      "FILTER_PROPERTY_CODE" => Array("GLUB","WIDTH","HEIGHT","STATUS","FRONT"),
      "FILTER_PRICE_CODE" => Array(),
      "ALSO_BUY_ELEMENT_COUNT" => "5",
      "ALSO_BUY_MIN_BUYES" => "2",
      "AJAX_OPTION_SHADOW" => "Y",
      "AJAX_OPTION_JUMP" => "N",
      "AJAX_OPTION_STYLE" => "Y",
      "AJAX_OPTION_HISTORY" => "N",
      "AJAX_OPTION_ADDITIONAL" => "",
      "SEF_FOLDER" => "/catalog/",
      //"LIST_PAGE_URL" => "/catalog/",
      "SEF_URL_TEMPLATES" => Array(
         "sections" => "",
         "section" => "#SECTION_ID#/",
         "element" => "#SECTION_ID#/#ELEMENT_ID#/",
         "compare" => "compare.php?action=#ACTION_CODE#"
      ),
      "VARIABLE_ALIASES" => Array(
         "sections" => Array(),
         "section" => Array(),
         "element" => Array(),
        &nbsp
ответил 24 Дек, 13 от Waicon (280 баллов)
00 голосов
Проверил - массив не пуст, если есть параметр в GET (в данном случае - height_u). Скорее всего у Вас просто несоответствие параметров.
Проверьте содержание $_GET.
ответил 09 Апр, 14 от SleepLess (1,220 баллов)
00 голосов
Можно поставить вопрос так -

Код
global $arrFilter;
$arrFilter = array( 
  "PROPERTY_HEIGHT" => 22, 
); 


Результат на выходе такой же - массив фильтра на выходе пуст. Проблема не в том, как я ему данные передаю
ответил 02 Авг, 14 от Waicon (280 баллов)

Похожие вопросы

0 голосов
3 ответов
0 голосов
1 ответ
0 голосов
1 ответ
спросил 28 Июль, 15 от аноним
0 голосов
1 ответ
0 голосов
2 ответов
спросил 19 Авг, 13 от Kiriel (2,010 баллов)