Afficher la sélection d'attributs sur le bouton cliquez uniquement lorsque l'attribut sélectionné avant
-
16-10-2019 - |
Question
Ce qui suit est le code édité à partir du bloc de produits configurables sur la page d'informations de chaque produit configurable. Il est le bloc qui renseigne avec les sélectionner les menus déroulants tels que la « couleur ». Je travaille sur un projet unique où il y aura un fournisseur spécifique attaché à chaque produit simple.
<?php
$_product = $this->getProduct();
$_attributes = Mage::helper('core')->decorateArray($this->getAllowAttributes());
?>
<div id="caitlinVendors">
<?php if ($_product->isSaleable() && count($_attributes)):?>
<dl>
<?php foreach($_attributes as $_attribute){ ?>
<div id="<?php echo $_attribute->getLabel() ?>Box" class="attributeBox">
<dt><label class="required"><em>*</em><?php echo $_attribute->getLabel() ?></label></dt>
<dd<?php if ($_attribute->decoratedIsLast){?> class="last"<?php }?>>
<div class="input-box">
<select name="super_attribute[<?php echo $_attribute->getAttributeId() ?>]" id="attribute<?php echo $_attribute->getAttributeId() ?>" class="required-entry super-attribute-select">
<option><?php echo $this->__('Choose an Option...') ?></option>
</select>
</div>
</dd>
</div>
<?php }?>
<a href="#" class="vendorsButton">Show Vendors</a>
<div class="clear"></div>
</dl>
</div>
<?php
$product_id = $_product->getId();
$attrValue = Mage::getModel('catalog/product')->load($product_id)->getAttributeText('color'); ?>
<script type="text/javascript">//Caitlin
var $j= jQuery.noConflict();
$j(".vendorsButton").on("click", function(event){
event.preventDefault();
$j('#vendorBox').css('visibility','show');
//console.log($j('#color option').val());
var secondToLast="#caitlinVendors .attributeBox select:nth-last-child(2)";
if (!$j("secondToLast option:selected").length){
var attributeValue=<?=json_encode($attrValue)?>;
console.log("The value is " + attributeValue);
}
if ($j("#vendorBox").is(":hidden")) {
$j("#vendorBox").slideDown("fast");
} else {
$j("#vendorBox").hide();
}
});
var spConfig = new Product.Config(<?php echo $this->getJsonConfig() ?>);
</script>
<?php endif;?>
Je le vendeur de sélectionner des options cachées jusqu'à ce que « Afficher les vendeurs » est sélectionné. Je ne veux pas « Afficher Vendors » être cliquable jusqu'à ce que la dernière option est sélectionnée. Par conséquent, ce que j'ai des problèmes avec actuellement la récupération de la valeur de l'option sélectionnée . Je suis en train de le récupérer ici:
<?php
$product_id = $_product->getId();
$attrValue = Mage::getModel('catalog/product')->load($product_id)->getAttributeText('color'); ?>
Je suis ensuite l'envoyer à une fonction javascript pour imprimer à la console. Je ne reçois la valeur « false ». Toutes les idées?
La solution
Qu'en est-il le réglage de la .attr("disabled", true)
alors qu'aucune valeur est sélectionnée pour la première vers le bas goutte.
** réglez cette fonction sur chargement de la page.