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

Условие вывода свойства инфоблока

00 голосов
6
Есть свойство инфоблока Значение-["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"] и имя ['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['NAME']
Надо чтобы при наличии Чего-то в значении выводилось имя и значение, а при отсутствии этот блок просто скрывался. Сделал так
Код
<?php if ($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"]) {?> 
<span class="qwerty"><?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['NAME']);?></span>
<b><?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['VALUE']);?></b><br /> 
<?php } else { ?> 
<st yle>.qwerty{display:none;}</style>
<?php }?>
Для теста скрытие Имени сделал (span). Но не смотря на то что условие должно срабатывать на 1 этапе, второй тоже выполняется, тобишь скрывается и само имя. Как исправить так чтобы скрывалось лишь при отсутствии данных?
спросил 25 Май, 13 от PeG (300 баллов)

6 Ответы

00 голосов
Если у вас список элементов, то при однократном срабатывании else спрячутся все span.qwerty.
Попробуйте так:
Код
<?if ($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"]):?>
   <span class="qwerty"<?=($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"] ? '' : ' style="display:none;"');?>>
   <?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['NAME']);?>
   </span>
<?endif;?>
<b><?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['VALUE']);?></b><br />
ответил 25 Май, 13 от Fenozipam (420 баллов)
00 голосов
ImperM3r, а у стандартном браузере работает?
напиши мне в аське 239522804
у меня похожий же вопрос и остались еще проблемы (валидация)
ответил 25 Май, 13 от VitaliyKR (360 баллов)
00 голосов
свойство, список select,
если значение 1, выводится свойство1, если значения 2, выводится свойство2.

как сделать валидацию?
скрыл поля через

display:none;
но не работает в IE 8.
ответил 19 Авг, 13 от VitaliyKR (360 баллов)
00 голосов
ImperM3r,

как узнать ID FORM для события?
. ./. ./. ./webdev/user/112096/
ответил 18 Ноя, 13 от VitaliyKR (360 баллов)
00 голосов
Цитата
bga пишет:
Если у вас список элементов, то при однократном срабатывании else спрячутся все span.qwerty.
Попробуйте так:
Код
 <?if ($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"]):?>
   <span class="qwerty"<?=($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"] ? '' : ' style="display:none;"');?>>
   <?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['NAME']);?>
   </span>
<?endif;?>
<b><?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['VALUE']);?></b><br />
 
Та же шляпа, Там где свойства пустые то просто пустые поля. Рисунок
ответил 27 Фев, 14 от PeG (300 баллов)
00 голосов
Вобщем, ребят сделал я. Но скорее как костыль, но работает как надо.
Что имеем: список характеристик, div в котором хранятся div'ы этих характеристик (specifikacii).
Что надо: проверка, если свойство не пустое, то выводим его, если пустое то {display:none;}
Как решил Я: Для общего блока (specifikacii) добавил айди товара и получилось specifikacii_<?=$this->GetEditAreaId($arElement['ID']);?>;
Для каждой характеристики добавил id логичный. В случае с приведённым ниже кодом у Свойства "Занимаемая площадь", id="zanim";
Условие "Если есть свойство, то выводим название и значение, если нет, то выводим <st yle> с div'ом общим +div с айди этого свойства, тоесть 'zanim' и присваиваем ему {display:none}".
Тоесть скрытие идёт только в пределах этого div'а.

<div class="specifikacii_<?=$this->GetEditAreaId($arElement['ID']);?>">
<?php if ($arElement["DISPLAY_PROPERTIES"]["ZANIM_PLOSHAD"]["VALUE"]) {?>
<div class="catalog-specifikacii" id="zanim">
<span><?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['NAME']);?></span>
<?print_r($arElement['DISPLAY_PROPERTIES']['ZANIM_PLOSHAD']['VALUE']);?><br /> </div>
<?php } else { ?>
<st yle>div.specifikacii_<?=$this->GetEditAreaId($arElement['ID']);?> div#zanim{display:none;}</style>
<?php }?>
ответил 19 Июнь, 14 от PeG (300 баллов)

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

0 голосов
0 ответов
спросил 23 Май, 13 от Awatarik (140 баллов)
0 голосов
2 ответов
спросил 20 Май, 13 от GaL4oNok (160 баллов)
0 голосов
5 ответов
0 голосов
2 ответов
спросил 21 Апр, 14 от alibaba (100 баллов)