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

Обработка checkbox в компоненте arrFilter

00 голосов
4
Добрый День уважаемые программисты!

Помогите пожалуйста, знаю, что задача тривиальная, но никак не могу сообразить!
Делаю фильтр по каталогу, возникла трудность

В компоненте arrFilter в файле component.php

Делаю обработку поля отсутствуют на складе, там всего два значения 0 и 1
Если 1 будут выбраны товары которые отсутствуют на складе, если 0 то будут выведены все товары!
Задача:
У меня 1 checkbox, по умолчанию значение value у checkbox = 0
Если мы нажимаем на checkbox, то значение должно стать value=1 и checked="checked"

Подскажите, совсем замучился!

Вот сам код:
Код
if($arProp["CODE"] == "IS_ABSENT") // Отсутствие на складе в виде checkbox
      {  
        $name = $FILTER_NAME."_pf[".$arProp["CODE"]."]";
   $value = $arrPFV[$arProp["CODE"]];            
   $res .= '<input type="checkbox" name="'.$name.'" value="'.$value.'" />'; 
            
   if (strlen($value)>0)
      ${$FILTER_NAME}["PROPERTY"][">=".$arProp["CODE"]] = intval($value);
      }
спросил 23 Июль, 13 от Chemikals (840 баллов)

4 Ответы

00 голосов
Код
<input type="hidden" name="'.$name.'" value="0" />
<input type="checkbox" name="'.$name.'" value="1" <? echo ($value == 1 ? 'checked' : ''); ?>/>
ответил 23 Июль, 13 от Pomnep (13,960 баллов)
00 голосов
Евгений, пишет ошибку Parse error: syntax error, unexpected '?'
вот как сделал:
Код
if($arProp["CODE"] == "IS_NEW") // Отсутствие на складе в виде checkbox 
         {
            $name = $FILTER_NAME."_pf[".$arProp["CODE"]."]";
            $value = $arrPFV[$arProp["CODE"]];            
            $res .= '<input type="hidden" name="'.$name.'" value="0" />'; 
            $res .= '<input type="checkbox" name="'.$name.'" value="1" '<? echo ($value == 1 ? 'checked' : ''); ?>'/>';
            if (strlen($value)>0)
               ${$FILTER_NAME}["PROPERTY"][">=".$arProp["CODE"]] = intval($value);
         }
ответил 18 Сен, 13 от Chemikals (840 баллов)
00 голосов
Цитата
Potapchik пишет:
$res .= '<input type="checkbox" name="'.$name.'" value="1" '<? echo ($value == 1 ? 'checked' : ''); ?>'/>';

Так если Вы все это присваиваете строке, убирайте echo:
Код
$res .= '<input type="checkbox" name="'.$name.'" value="1" '.($value == 1 ? 'checked' : '').'/>'; 
ответил 16 Дек, 13 от Pomnep (13,960 баллов)
00 голосов
Евгений, спасибо вам огромное!
Разобрался!
ответил 31 Март, 14 от Chemikals (840 баллов)

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

0 голосов
2 ответов
спросил 16 Окт, 13 от Jannys (120 баллов)
0 голосов
3 ответов
0 голосов
7 ответов
0 голосов
0 ответов
спросил 23 Апр, 13 от Lastochka (120 баллов)