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

Настройка фильтра

00 голосов
4
Существует фильтр. Который работает по следующему принципу:
Есть Страны и есть Города. Выбирая в первом выпадающем списке Страну, во втором select-е автоматически остаются только города выбранной страны.
Подскажите как переделать фильтр, чтобы выпадающие списки работали обособлено. То есть в данном конкретном случае чтобы можно было изначально выбрать Город, не трогая Страну.
Вот код того что есть:

Код
<? //Query Form 

        $arSelect = Array("ID", "NAME");
        $arFilter = Array("IBLOCK_CODE"=>"countries", "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
        $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
        while($ob = $res->GetNextElement())
        {
          $arFields = $ob->GetFields();
         $Filter["countries"][] = array("ID" => $arFields["ID"], "NAME" => $arFields["NAME"]);
        }

   if (htmlspecialchars($_GET["p_hotel_country"])) {
        $arSelect = Array("ID", "NAME");
        $arFilter = Array("IBLOCK_CODE"=>"cities", "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y",
 X PROPERTY_COUNTRY" => htmlspecialchars($_GET["p_hotel_country"]));
        $res = CIBlockElement::GetList(Array(), $arFilter, false, false, $arSelect);
        while($ob = $res->GetNextElement())
        {
          $arFields = $ob->GetFields();
         $Filter["cities"][] = array("ID" => $arFields["ID"], "NAME" => $arFields["NAME"]);
        }}

        ?>
        <div class="hotels_query_form">
        <form method="get" action="" id="hotels_query_form" name="hotels_query_form" rel class="jNice">
        
        <fieldset class="country">
            <span class="l">Страна:</span>
            <select size="1" name="p_hotel_country" onchange="jQuery('#p_hotel_city').val('');
             jQuery('#hotels_query_form').submit();">
           <option value="0" <? if (!htmlspecialchars($_GET["p_hotel_country"]))
              {echo 'selected="selected"';} ?>>- все -</option>
                <?
                foreach ($Filter["countries"] as $Element)
                {
                    ?><option <? if (htmlspecialchars($_GET["p_hotel_country"]) == $Element["ID"])
           {echo ' selected="selected" ';} ?> value="<?=$Element["ID"]?>"><?=$Element["NAME"]?></option><?
                }
                ?>
            </select>
        </fieldset>

        <fieldset class="sity">
           <span class="l">Город:</span>
<select size="1" name="p_hotel_city" id="p_hotel_city" onchange="jQuery('#hotels_query_form').submit();">
            <option value="0" <? if (!htmlspecialchars($_GET["p_hotel_city"]))
             {echo 'selected="selected"';} ?>>- все -</option>
                <?
                foreach ($Filter["cities"] as $Element)
                {
                    ?><option <? if (htmlspecialchars($_GET["p_hotel_city"]) == $Element["ID"])
          {echo ' selected="selected" ';} ?> value="<?=$Element["ID"]?>"><?=$Element["NAME"]?></option><?
                }
               ?>
            </select>
        </fieldset>

        </form>
        </div>
спросил 20 Янв, 14 от delajla (500 баллов)

4 Ответы

00 голосов
убери событие onchange с селектов
ответил 11 Май, 14 от Hax (1,100 баллов)
00 голосов
Убрал. Фильтр совсем перестал работать :)
ответил 07 Сен, 14 от delajla (500 баллов)
00 голосов
:) прасти)
ответил 13 Янв, 15 от Hax (1,100 баллов)
00 голосов
На такую же проблему я наткнулась, вы не нашли выход?
ответил 30 Апр, 15 от 867856 (100 баллов)

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

0 голосов
1 ответ
спросил 17 Июнь, 14 от аноним
0 голосов
0 ответов
0 голосов
2 ответов
0 голосов
2 ответов
спросил 08 Апр, 14 от EDKA (980 баллов)