フロントエンドで選択したドロップダウン属性を取得しますか?


7

この方法ですべてのドロップダウン属性値を取得しました

    <select class=" required-entry required-entry select" name="product[age]" id="age">
        <?php 
             $attributeId = Mage::getResourceModel('eav/entity_attribute')->getIdByCode('catalog_product','age');
             $attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId);
             $attributeOptions = $attribute->getSource()->getAllOptions();
             foreach($attributeOptions as $each){?>
               <option value="<?php echo $each[value]?>"><?php echo $each["label"]?></option><?php
             }

}?>
    </select>

ここ属性Id =年齢。今、私はすでに選択されるべきであるいくつかの値をデータベースに保存しています

このように私はフロントエンドに表示する必要があります

このおかげで事前に私を助けてください

このようにして必要なフロントエンド

また、私はこのコードで使用しました

<select class=" required-entry required-entry select" name="product[age]" id="age">

<?php $productId = $this->getProduct()->getId();
$product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
$selectedvalue  = $product->getAttributeText('age');

$atributeCode = 'age';
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product',$atributeCode);
        $options = $attribute->getSource()->getAllOptions();

        foreach($options as $key => $value){


            if(in_array($selectedvalue,$value)){
                ?>
                <option>
                <?php echo $value['label'] ; ?>
                </option><?php 
                continue;
            }
?>
                <option>
                <?php echo $value['label']; ?>
                </option><?php 

        }?>
</option>
</select>

また、選択された値が強調表示されていないすべての属性値を表示します

回答:


13

getAttributeText関数を使用して、Productオブジェクトからフロントエンドの選択ボックス属性値を取得します

 echo  $product->getAttributeText('age_group');

特定の製品の管理者から選択された値を直接表示します。

これがうまくいくことを願っています。


選択した値のみが表示されるわけではありません。すべての値が必要ですが、選択した値を強調表示する必要があります
Magento 2

4

これを試して、

<?php if ($_product->getData('attribute_name')): ?>
<?php echo nl2br($_product->getResource()->getAttribute('attribute_name')->getFrontend()->getValue($_product)) ?>
<?php endif;?>

(または)

$productId = 1;
$product = Mage::getModel('catalog/product')->setStoreId(Mage::app()->getStore()->getId())->load($productId);
$selectedvalue  = $product->getAttributeText('color');

$atributeCode = 'color';
$attribute = Mage::getModel('eav/config')->getAttribute('catalog_product',$atributeCode);
        $options = $attribute->getSource()->getAllOptions();

        foreach($options as $key => $value){

            if(in_array($selectedvalue,$value)){
                echo "<pre>";
                print_r($value); //get Product's selected attribute options Values
                echo "</pre>";  
                continue;
            }

                echo "<pre>";
                print_r($value); //get remaining attribute options Values
                echo "</pre>";

        }

要件に応じて変更できます


編集した質問を確認してください
Magento 2

選択した値のみが表示されるわけではありません。すべての値が必要ですが、選択した値を強調表示する必要があります
Magento 2

更新された回答をチェック
saravanavelu

いいえ、すべての値を表示するだけで、選択した値を強調表示しません
Magento 2

必要に応じて変更する必要があります
saravanavelu

1

magentoウェブサイトのルートディレクトリに移動

app \ design \ frontend \ MyPackage \ MyTheme \ template \ catalog \ product \ view.phtml

フロントエンドの製品ページに表示するコードを編集して追加します。

<?php if ($_product->getColor()):?>
    <?php
         $getOptionText = $_helper->productAttribute($_product, $_product->getColor(), 'color');
         $attr = $_product->getResource()->getAttribute("color");
         if ($attr->usesSource()) {
         $color_label = $attr->getSource()->getOptionText($getOptionText);
         }
    ?>
    <div class="color">
         <div class="std"><?php echo $this->__('Color :- ') ?><?php echo $color_label; ?></div>
    </div>
<?php endif;?>

空のドロップダウンのみが表示されます
Magento 2
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.