2013-07-19 22 views
9

私はは自動的

echo $_product->getProductSize(); 

その後
echo $_product->getAttributeText('product_size'); 

を使用してカスタムドロップダウン属性の選択された値を取得しようとしているが、私は私のキャッシュをクリアし、インデックスを再作成し、Magentoのカスタム属性のドロップダウン値を選択しましょう私のページをリロードします。私はドロップダウンから値を選択しようとしましたが、いずれかが何かを返します。だから基本的に、私の質問は、私はどのようにカスタムドロップダウン属性から選択した値を取得できますか?私は、これを使用して、選択した値に応じて製品ページに異なる内容を表示することを計画しています。助けやアドバイスを事前に感謝します。

追加:同じドロップダウンが呼び出された製品ページで呼び出そうとしています。

管理パネルで属性を少し試してみたところ、選択した値がどのようにページにエコーされたかが気付きました。しかし、私はフロントエンドで動的にそれを取得できることを期待していました。これは可能ですか?たとえば、フロントエンドで顧客がオプションBを選択すると、オプションBに関連する情報が表示されます。その後、オプションDに変更された場合、情報はオプションDの情報に変更されます。

+0

この値を取得しようとしていますか?どのページですか? – Shatir

+0

私は同じドロップダウンがある製品ページでそれを取得しようとしています。 – user1597438

答えて

1

あなたはそれがフロントエンドに製品ビューページに表示 "あなたのテーマは「商品リストに使用される」この設定に依存しない限り、仕事をしなければならないコード

<?php if ($_product->getData('attribute_name')): ?> 
<p><?php echo nl2br($_product->getResource()->getAttribute('attribute_name') 
->getFrontend()->getValue($_product)) ?> 
</p> 
+0

提案していただきありがとうございますが、これは私のためには機能しませんでした。 – user1597438

+0

ありがとうございましたが、これはまったく機能しませんでした。ドロップダウン値を変更したところ、選択した値が表示されませんでした。 – user1597438

+0

http://www.devinrolsen.com/magento-custom-attributes-value/このリンクを参照してください。このリンクは正しい方向にあなたを導きます – Zaheerabbas

16
echo $_product->getAttributeText('product_size'); 

下に試すことができます属性の管理でバックエンドからのあなたの属性のために。 さらに、属性コードにスペースが含まれていないかどうかを確認してください。 magentoでは、フォームのサブミットによって属性コード内のスペースを使用することはできませんが、属性がプログラムで作成された場合やSQLクエリから作成された場合も可能です。他の賢明なことはあなたのコードや属性が問題を引き起こしていないことです。

+0

htmlをこれらの値にエスケープする方法は? –

+0

http://magento.stackexchange.com/questions/569/how-to-escape-output-data#answer-571 –

+0

とカスタムオプションのドロップダウンの値を取得する方法は? –

3

このコードを参照すると、役に立つことがあります。
コードは、その値を

foreach ($_product->getOptions() as $value) 
{ 
    echo "<br/><strong>".$value->getTitle()."</strong><br/>"; 
    $values = $value->getValues();// Getting Values if it has option values, case of select,dropdown,radio,multiselect 
    ?> 
    <select id = "<?php echo 'select_'.$value->getId() ?>" name = "<?php echo 'options['.$value->getId() .']'?>"> 
    <?php 
    foreach ($values as $val) 
     { 
      echo "<option price = " . $val->getPrice(). " value = ".$val->getOptionTypeId() . ">" .$val->getTitle()."</option>"; 
     } 
     ?> 
    </select> 
    <?php 
    $i++; 
} 

注意をすべてのカスタムオプションをフェッチ:コードはカスタムオプションを出力 &その値、彼らはに製品を追加するために使用された場合、彼らは必要とされるであろうと同じようにカート。
オプションの値を取得したい場合(コードの複雑さを減らすため)、selectを削除することができます。

+0

これは表示するためには機能しますが、カートに追加するときにはオプションの価格は使用されません。 – testing123