嗨,我需要一些关于这个脚本的帮助。我需要在选择单选标签的产品代码 div 上显示 sku。
是一些行 $j("input#attribute 和 input:radio 我无法修复
实际上,这可以获得可选择尺寸或颜色的 sku。
php代码
<?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<?php if ($_product->isSaleable() && count($_attributes)):?>
<dl>
<?php foreach($_attributes as $_attribute): ?>
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<div class="input-box">
<?php $configs = $this->getRegularConfig()?>
<?php foreach($configs['attributes'] as $config):?>
<?php foreach($config['options'] as $value):?>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<label class="label-radio-configurable" id="<?php echo (float)$value['price'] + (float) $_product->getPrice();?>">
<input type="radio" name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]"
id="attribute<?php echo $_attribute->getAttributeId() ?>"
class="validate-custom-configurable"
value="<?php echo $value['id']?>"/>
<?php echo $value['label']?> (+ $<?php printf("%.2f", $value['price'])?>)
</label>
<?php endforeach;?>
<?php endforeach;?>
</dd>
</div>
<?php endforeach; ?>
</dl>
<?php endif;?>
JS 脚本
<div id="productcode"></div>
<?php
$conf = Mage::getModel('catalog/product_type_configurable')->setProduct($_product);
$col = $conf->getUsedProductCollection()->addAttributeToSelect('*')->addFilterByRequiredOptions();
?>
<script type="text/javascript">
var Skus =new Array();
<?php
$count = 1;
$itemId = array();
foreach($col as $simple_product){
$itemId[] = array($simple_product->getSelectLabel() => $simple_product->getSku());
}
foreach($itemId as $val){
foreach($val as $k => $v){
echo 'Skus['.$count.'] = "'.$v.'";'. "\n";
$count++;
}
};
?>
$j(document).ready(function(){
$j("#productcode").html("Code: " +Skus[1]);
$j("input#attribute<?php echo $_attribute->getAttributeId() ?>").change(function(){
var position = $j("#attribute<?php echo $_attribute->getAttributeId() ?> input").index($j("#attribute<?php echo $_attribute->getAttributeId() ?> input:radio));
$j("#productcode").html(Skus[position] ? "Code: " +Skus[position] : "Code: " +Skus[1]);
});
});
</script>