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

работа с фильтрами

00 голосов
0
Делаю сайт интернет магазина. Нужно сделать фильтр по товарам. так чтобы одно фильтр по одному свойству выводилось в виде нескольких чекбоксов.
Как это правильно сделать??

PS пытался сделать так:
использую стандартный компонент catalog.filter
в файле component.php код
Код
 $name = $FILTER_NAME."_pf[".$arProp["CODE"]."]"; 
         $value = $arrPFV[$arProp["CODE"]]; 
         if ($arProp["MULTIPLE"]=="Y") 
            $res .= '<select multiple name="'.$name.'[]" size="'.$arParams["LIST_HEIGHT"].'">'; 
         else 
            $res .= '<select name="'.$name.'">'; 
         $res .= '<option value="">'.GetMessage("CC_BCF_ALL").'</option>'; 
         foreach($arProp["VALUE_LIST"] as $key=>$val) 
         { 
            $res .= '<option'; 

            if (($arProp["MULTIPLE"] == "Y") && is_array($value)) 
            { 
               if(in_array($key, $value)) 
                  $res .= ' selected'; 
            } 
            else 
            { 
               if($key == $value) 
                  $res .= ' selected'; 
            } 

            $res .= ' value="'.htmlspecialchars($key).'">'.htmlspecialchars($val).'</option>'; 
         } 
         $res .= '</select>';


заменил на
Код
  $name = $FILTER_NAME."_pf[".$arProp["CODE"]."]"; 
         $value = $arrPFV[$arProp["CODE"]]; 
         if ($arProp["MULTIPLE"]=="Y") 
            $res .= ''; 
         else 
            $res .= '<select name="'.$name.'">'; 
         if ($arProp["MULTIPLE"]=="Y") 
            $res .= ''; 
             
         else 
            $res .= '<option value="">'.GetMessage("CC_BCF_ALL").'</option>'; 
          
         foreach($arProp["VALUE_LIST"] as $key=>$val) 
         { 
            if ($arProp["MULTIPLE"]=="Y") 
               $res .= '<input'; 
            else 
             
            $res .= '<option'; 

            if (($arProp["MULTIPLE"] == "Y") && is_array($value)) 
            { 
               if(in_array($key, $value)) 
                  $res .= ' checked'; 
            } 
            else 
            { 
               if($key == $value) 
                  $res .= ' selected'; 
            } 
            if ($arProp["MULTIPLE"]=="Y") 
             
            $res .= ' type="checkbox" name="'.$name.'[]" value="'.htmlspecialchars($key).'">'.htmlspecialchars($val).' '; 
             
            else 
             
            $res .= ' value="'.htmlspecialchars($key).'">'.htmlspecialchars($val).'</option>'; 
         } 
         $res .= '</select>';

и поставил у свойства "множественный выбор"
пока не помогло(
спросил 10 Март, 14 от lordonka (120 баллов)

Ваш ответ

Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

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

0 голосов
3 ответов
спросил 20 Фев, 14 от yye (220 баллов)
0 голосов
1 ответ
спросил 21 Сен, 13 от Vamp1r3 (220 баллов)
0 голосов
1 ответ
спросил 12 Авг, 16 от fomix (120 баллов)
0 голосов
2 ответов
спросил 04 Май, 14 от Nub8507 (100 баллов)
0 голосов
4 ответов
спросил 28 Янв, 14 от ZeroZ (100 баллов)