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

Вопрос по фильтру

00 голосов
4
Вопрос - стоит у меня фильтр, для поиска... допутим датчиков. можно ли сделать так, что бы после нажатия на кнопку фильтр (то есть после выполнения запроса) открывалась новая страница с нужными элементами, или та же, но без самого фильтра.
Сейчас это выглядит так: фильтр, внизу список датчиков.
Нажимаю на фильтр: открываеться страница на которой фильтр, внизу список отобранных датчиков.
Хотелось бы что бы после нажатия на фильтр был тока список отобранных датчиков.
спросил 13 Янв, 14 от JIapro (180 баллов)

4 Ответы

00 голосов
Кстати, вот код страницы:

 <?$APPLICATION->IncludeComponent(
"bitrix:news",
"tablica",
Array(
"DISPLAY_DATE" => "Y",
"DISPLAY_PICTURE" => "Y",
"DISPLAY_PREVIEW_TEXT" => "Y",
"SEF_MODE" => "N",
"IBLOCK_TYPE" => "news",
"IBLOCK_ID" => "43",
"NEWS_COUNT" => "0",
"USE_SEARCH" => "N",
"USE_RSS" => "N",
"USE_RATING" => "N",
"USE_CATEGORIES" => "N",
"USE_FILTER" => "Y",
"SORT_BY1" => "ACTIVE_FROM",
"SORT_ORDER1" => "DESC",
"SORT_BY2" => "SORT",
"SORT_ORDER2" => "ASC",
"PREVIEW_TRUNCATE_LEN" => "",
"LIST_ACTIVE_DATE_FORMAT" => "d.m.Y",
"LIST_FIELD_CODE" => Array("",""),
"LIST_PROPERTY_CODE" => Array("diapozon_ot","diapozon_do","pogreshnost","massa","dlina","visota","shirina","diametr","tochnost","resurs","opisanie","literatura","izgotovitel","","chertezh","marka","sreda",""),
"HIDE_LINK_WHEN_NO_DETAIL" => "N",
"DISPLAY_NAME" => "Y",
"META_KEYWORDS" => "-",
"META_DESCRIPTION" => "-",
"DETAIL_ACTIVE_DATE_FORMAT" => "d.m.Y",
"DETAIL_FIELD_CODE" => Array("",""),
"DETAIL_PROPERTY_CODE" => Array("sreda _dd","chuvstvit_dd","rod_davleniya_dd","preobrazovatel_dd","diapozon_ot","diapozon_do","pogreshnost","massa","dlina","visota","shirina","diametr","tochnost","chuvstv_element","resurs","srok","tok2_dd","power_dd","U_dd","I_dd","chast_dd","soprotiv_dd","napryazh_dd","tok_dd","opisanie","literatura","izgotovitel","sreda _dt","chuvstvit_dt","shkala_dt","tip_dt","temperat_dt","vlazhn_dt","davlenie_dt","vibraciya_dt","chertezh","",""),
"DETAIL_DISPLAY_TOP_PAGER" => "Y",
"DETAIL_DISPLAY_BOTTOM_PAGER" => "N",
"DETAIL_PAGER_TITLE" => "Страница",
"DETAIL_PAGER_TEMPLATE" => "",
"DISPLAY_PANEL" => "N",
"SET_TITLE" => "Y",
"INCLUDE_IBLOCK_INTO_CHAIN" => "Y",
"ADD_SECTIONS_CHAIN" => "Y",
"USE_PERMISSIONS" => "N",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600",
"CACHE_FILTER" => "N",
"DISPLAY_TOP_PAGER" => "Y",
"DISPLAY_BOTTOM_PAGER" => "N",
"PAGER_TITLE" => "Датчики",
"PAGER_SHOW_ALWAYS" => "Y",
"PAGER_TEMPLATE" => "",
"PAGER_DESC_NUMBERING" => "N",
"PAGER_DESC_NUMBERING_CACHE_TIME" => "36000",
"FILTER_NAME" => "",
"FILTER_FIELD_CODE" => Array("",""),
"FILTER_PROPERTY_CODE" => Array("sreda _dd","chuvstvit_dd","rod_davleniya_dd","preobrazovatel_dd","diapozon_ot","diapozon_do","pogreshnost","massa","dlina","visota","shirina","diametr","tochnost","chuvstv_element","resurs","",""),
"VARIABLE_ALIASES" => Array(
"SECTION_ID" => "SECTION_ID",
"ELEMENT_ID" => "ELEMENT_ID"
)
)
);?>
ответил 27 Апр, 14 от JIapro (180 баллов)
00 голосов
Дамы и господа, понимаю что я тут не один и что всем нужна помощь, но я вас очень прошу, осоветуйте что нить... уверен кто-то из вас сталкивался с этим... хоть какой-то совет..
ответил 22 Авг, 14 от JIapro (180 баллов)
00 голосов
Самое простое решение "в лоб" :)
Редактируем шаблон компонента фильтр следующим образом:
Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<? global ${$arParams[FILTER_NAME]};
if (count(${$arParams[FILTER_NAME]}) == 0) { ?>
<form name="<?=$arResult["FILTER_NAME"]."_form"?>" action="" method="get">
   <?foreach($arResult["ITEMS"] as $arItem):
      if(array_key_exists("HIDDEN", $arItem)):
         echo $arItem["INPUT"];
      endif;
   endforeach;?>
   <table class="data-table" cellspacing="0" cellpadding="2">
   <thead>
      <tr>
         <td colspan="2" align="center"><?=GetMessage("IBLOCK_FILTER_TITLE")?></td>
      </tr>
   </thead>
   <tbody>
      <?foreach($arResult["ITEMS"] as $arItem):?>
         <?if(!array_key_exists("HIDDEN", $arItem)):?>
            <tr>
               <td valign="top"><?=$arItem["NAME"]?>:</td>
               <td valign="top"><?=$arItem["INPUT"]?></td>
            </tr>
         <?endif?>
      <?endforeach;?>
   </tbody>
   <tfoot>
      <tr>
         <td colspan="2">
            <input type="submit" name="set_filter" value="<?=GetMessage("IBLOCK_SET_FILTER")?>" /><input type="hidden" name="set_filter" value="Y" />  <input type="submit" name="del_filter" value="<?=GetMessage("IBLOCK_DEL_FILTER")?>" /></td>
      </tr>
   </tfoot>
   </table>
</form>
<? } ?>
Т.е. проверяем количество установленных полей в фильтре, и если оно отлично от нуля, то выводим html-код фильтра
ответил 27 Дек, 14 от sickmind (4,660 баллов)
00 голосов
Кстати, если внимательно посмотреть на код шаблона, то там видна строчка
Код
<form name="<?=$arResult["FILTER_NAME"]."_form"?>" action="" method="get">
Если в action написать адрес другой страницы, то управление передастся той странице и будут переданы установленные в фильтре параметры :)
ответил 15 Апр, 15 от sickmind (4,660 баллов)

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

0 голосов
3 ответов
спросил 28 Фев, 14 от Lollipopk (660 баллов)
0 голосов
1 ответ
спросил 06 Янв, 14 от mefhm78 (120 баллов)
0 голосов
2 ответов
спросил 25 Дек, 13 от Rogarond (820 баллов)
0 голосов
7 ответов
спросил 25 Май, 13 от rg (440 баллов)
0 голосов
3 ответов
спросил 17 Май, 13 от AlexSol (240 баллов)