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

фильтр по элементам - зависимость полей... как?

00 голосов
6
Не могу добиться такого эффекта... предположим, есть каталог по городам мира... хочу поставить фильтр по элементам, но что бы он работал след. образом - в нем есть списки "страны" и "города"... при выборе в списке "страны" какой-то страны - нужно что бы в списке "города" остались только те города, которые относятся к выбранной стране... возможно ли это сделать стандартными средствами? и если да - то в какую сторону копать???

Спасибо!!!
спросил 07 Окт, 13 от Brizon (120 баллов)

6 Ответы

00 голосов
Столкнулся с такой же проблемой.. есть таки решение или штатными методами это не делается?
ответил 21 Окт, 13 от Kania (5,180 баллов)
00 голосов
Столкнулся с такой же проблемой. Как сделать фильтр что бы значениями <OPTION> были значения содержимого инфоблока. Простой текстовый фильтр не катит из условий задачи.
ответил 24 Янв, 14 от Eglute (120 баллов)
00 голосов
Цитата
sergey smirnov пишет:
Столкнулся с такой же проблемой. Как сделать фильтр что бы значениями <OPTION> были значения содержимого инфоблока. Простой текстовый фильтр не катит из условий задачи.

Код
// делаем выборку из инфоблока. нужны только ID и NAME элементов
$str = '';
$res = CIBlockElement::GetList(array(сортировка),array(условия отбора),false,false,array('ID','NAME'));
while( $arItem = $res->Fetch()):
   $str .= '<option value="'.$arItem['ID'].'>'.$arItem['NAME'].'</option>';
endwhile;
echo '<select name="чего-то">'.$str.'</select>';

как формировать условия сортировки и отбора
ответил 13 Май, 14 от Pomnep (13,960 баллов)
00 голосов
Добавляю этот код в шаблон фильтра каталога. Появляются элементы инфоблока в списке, но фильтрация по ним не проходит.
ответил 09 Сен, 14 от Eglute (120 баллов)
00 голосов
Цитата
sergey smirnov пишет:
Добавляю этот код в шаблон фильтра каталога. Появляются элементы инфоблока в списке, но фильтрация по ним не проходит.

Приведите код, который Вы добавили, т.к. тот, что дал я, не содержит условий фильтрации - их необходимо дописать самому.
ответил 15 Янв, 15 от Pomnep (13,960 баллов)
00 голосов
Цитата
Евгений Жуков пишет:
Цитатаsergey smirnov пишет:

Добавляю этот код в шаблон фильтра каталога. Появляются элементы инфоблока в списке, но фильтрация по ним не проходит.

Приведите код, который Вы добавили, т.к. тот, что дал я, не содержит условий фильтрации - их необходимо дописать самому.


Это код шаблона catalog.filter. Код получает данные с нужного мне инфоблока, формирует на основании этих данных выпадающий список, но фильрация по списку не работает. Подозреваю что делаю что-то не совсем так как надо. Но что... И как надо?

Код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<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">
        <td>
<?
$rsElements1 = CIBlockElement::GetList(array(), array("IBLOCK_ID" => "45"), false, array(), array());
?>

                <?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>
-->
                                <tr>
                                        <td valign="top"></td>
                                        <td valign="top">
                                        <select>
                                        <? foreach ($rsElements1->arResult as $element) {?>
                                         <option><?= $element["NAME"] ?></option>
                                        <?}?>
                                        </select>
                                        </td>
                                 </tr>
                        <?endif?>
                <?endforeach;?>
                         <tr>
                         <td>
                                <input type="submit" name="set_filter" value="&#200;&#241;&#234;&#224;&#242;&#252;" />
                                <input type="hidden" name="set_filter" value="Y" />&nbsp;&nbsp;
                         </td>
                         </tr>
        </table>
</form>
ответил 01 Май, 15 от Eglute (120 баллов)

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

0 голосов
3 ответов
0 голосов
3 ответов
+1 голос
1 ответ
0 голосов
1 ответ