構成可能な製品のオプションを、ドロップダウン リストではなく、ユーザーがオプションをクリックして選択できるように、内部に "a" を含む div として表示する必要があります。メニューのように (目標は靴のサイズを表示することです)。
多くの人が知っているように、Magento は Json レスポンスを使用してドロップダウン メニューのオプションを埋めます。(var spConfig = new Product.Config(getJsonConfig() ?>) であり、クラスは js/varien/product.js (Product.Config = Class.create() ) にあります。
次に、ファイル template/catalog/product/view/type/options/configurable.phtml を編集して、元の動作を次のように置き換えました。
'<?php
echo '
<ul class="super-attribute-select">';
$resultado = json_decode($this->getJsonConfig(), true);
$atributo=$resultado['attributes'][162]['options'];
foreach($atributo as $att){
echo '<li>';
echo '<a value="'.$att['id'].'" price="'.$att['price'].'" href="javascript:void()" onclick="return assignValue()">'.$att['label'].'</a>';
echo '</li>';
}
echo ' </ul>
<div class="clear"></div>';
?>'
このシンプルな mod を使用すると、メニューを div で形成された小さなグリッドに置き換えることができます。現在、ネイティブの動作をエミュレートする Javascript 関数を作成しようとしていますが、選択されたオプション (この場合は靴のサイズ) のみを対象としています。フォームでオプション値を送信するコードを理解しているので、非表示の入力を作成し、ユーザーがクリックを実行したときにJavascript関数を介して値を割り当てるという考えでした。
'<script>
function assignValue(value){
//assign the value
document.getElementById('super_attribute[162]').value = value;
//mod the class of the selected item
this.addClassName("selected");
</script>'
関数を作成するか、magento が既に値を必要とするメソッドを呼び出す必要があると思います。非表示の入力にクラス「required-entry」を設定するのが良い考えであるかどうかはわかりません。
私を手伝ってくれますか?どんな種類の助けや他のアイデアも高く評価されます。