2017-10-02 7 views
0

j'ai des tableaux:L'état de la sortie d'éléments ne fonctionne pas

$arSelect = Array("ID", "IBLOCK_ID", "NAME", "IBLOCK_SECTION_ID", "DETAIL_PAGE_URL", "EDIT_LINK", "DELETE_LINK"); 
$arFilter = Array("IBLOCK_ID" => $arParams['IBLOCK_ID'], "ACTIVE"=>"Y", "ACTIVE_DATE"=>"Y", "=PROPERTY_STATYS" => array(2,1), '=PROPERTY_LOT' => $arResult['ID']); 

et la forme de sortie:

<div class="panel-body second-links"> 
<?foreach ($arElement as $arElementItem): 
if (($arSection['ID'] == $arElementItem['IBLOCK_SECTION_ID']) && ($arFilter['=PROPERTY_STATYS_VALUE'] == '1')):?> 
<p> 
    <a class="open_lot" href="javascript:void(0);" url="<?=$arElementItem['DETAIL_PAGE_URL']?>" idElement="<?=$arElementItem['ID']?>"> 
        <?=$arElementItem['NAME']?> 
    </a> 
    <a>1</a> 
</p> 
    <?endif; 
    endforeach;?> 
</div> 

condition ne fonctionne pas $ arFilter [ '= PROPERTY_STATYS'] = = '1') Comment correctement mettre cette condition? A la condition que si l'élément du tableau est 1, sortir le texte par exemple "1" et si "2" alors le texte 2 à côté de l'élément principal. var_dump (arFilter):

array(5) { 
    ["IBLOCK_ID"]=> int(14) 
    ["ACTIVE"]=> string(1) "Y" 
    ["ACTIVE_DATE"]=> string(1) "Y" 
    ["=PROPERTY_STATYS"]=> array(2) { 
     [0]=> int(2) 
     [1]=> int(1) 
     } 
     ["=PROPERTY_LOT"]=> NULL 
    } 
+0

où est 'PROPERTY_STATYS_VALUE'? – Ravi

+0

essayez d'utiliser la fonction in_array() – Anthony

+0

@Ravi éditez ceci. 'PROPERTY_STATYS' –

Répondre

0

vous devez utiliser ($ arElementItem [ 'PROPERTY_STATYS_VALUE'] == '1') état au lieu de celui que vous avez utilisé. La raison en est que le tableau $ arFilter est utilisé pour permettre à la base de données de savoir comment filtrer les éléments (cette logique est faite dans le fichier component.php). En ce qui concerne la sortie (c'est généralement dans template.php), comme vous le voyez, vous avez une boucle foreach et vous pouvez accéder à l'élément via $ arElementItem. Espérons que cela aide - si vous ne m'écrivez pas, je vais résoudre ce problème à coup sûr.