Afficher la sélection d'attributs sur le bouton cliquez uniquement lorsque l'attribut sélectionné avant

magento.stackexchange https://magento.stackexchange.com/questions/2876

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?

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top