Magento显示可配置产品的动态SKU ...在选择所有选项之前不要显示

时间:2015-06-23 20:59:26

标签: javascript php magento dynamic

所以我发现this code几乎可以做到我想做的事。我需要代码在选择选项时动态显示可配置产品(简单产品的sku)的sku。唯一的问题是,在选择选项之前,它会显示第一个简单的产品sku。我希望它在显示所有选项之前不显示任何内容。

这是代码: 应用程序/设计/前端/ RWD /默认/模板/目录/产品/视图/类型/选项/ configurable.phtml

<?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("Product Code: " +Skus[1]);

$j("select#attribute<?php echo $_attribute->getAttributeId() ?>").change(function(){
var position = $j("#attribute<?php echo $_attribute->getAttributeId() ?> option").index($j("#attribute<?php echo $_attribute->getAttributeId() ?> option:selected"));

$j("#productcode").html(Skus[position] ? "Product Code: " +Skus[position] : "Product Code: " +Skus[1]);
});

});

</script>

和: 应用程序/设计/前端/ RWD /默认/模板/目录/产品/视图/ view.phtml

<div id="productcode"></div>

目前,动态sku显示第一个sku记录,直到选中所有选项,然后显示正确的选项。如果选择了所有选项,我如何隐藏sku?如果有人回去编辑他们的选择,我怎么能隐藏它?

提前致谢!

1 个答案:

答案 0 :(得分:1)

如果您评论(或删除)以下行,则不会在div onload中放置任何内容:

$j("select#attribute<?php echo $_attribute->getAttributeId() ?>").change(function(){
var position = $j("#attribute<?php echo $_attribute->getAttributeId() ?> option").index($j("#attribute<?php echo $_attribute->getAttributeId() ?> option:selected"));

$j("#productcode").html(Skus[position] ? "Product Code: " +Skus[position] : "Product Code: " +Skus[1]);
});

当更改选择时,以下代码仍将写入SKU:

{{1}}

希望有所帮助。