2017-03-29 7 views
0

私の問題の解決策を探しています。私はカートのボタンと数量のボックスに追加してカテゴリのリストを持っています。数量ボックス0に入っている場合はカートに追加する機能を無効にし、1以上の場合は許可する必要があります。 デフォルト値0が必要です。 カートに追加するボタンをクリックすると、カートに1つの商品が追加されます。数量ボックスが0の場合はカートに追加できません

この問題はカテゴリ一覧にあり、製品ページではありません。

/app/design/frontend/theme/theme/template/catalog/product/list.phtml

<?php if (!($product->getTypeInstance(true)->hasOptions($product)/*$_product->getData('has_options')*/ || $product->isGrouped())) : ?> 

           <div class="qty-holder"> 
            <input type="text" name="qty" id="qty_<?php echo $_product->getId(); ?>" maxlength="12" value="<?php echo $product->getProductDefaultQty() * 1 ?>" title="<?php echo $this->__('Qty') ?>" class="input-text qty" /> 
            <div class="qty-changer"> 
             <a href="javascript:void(0)" class="qty_inc" style="height:34px; line-height:34px;"><i class="icon-up-dir"></i></a> 
             <a href="javascript:void(0)" class="qty_dec" style="height:34px; line-height:34px;"><i class="icon-down-dir"></i></a> 
            </div> 
           </div> 
          </form> 
          <?php $_productid == $_product->getId(); ?> 

          <a href="<?php if(!Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code) && !Mage::getStoreConfig("porto_settings/category/qty_field", $code)): ?><?php echo $this->getAddToCartUrl($_product) ?><?php else: ?>javascript:void(0)<?php endif; ?>" class="addtocart" title="<?php echo $this->__('Add to Cart') ?>" <?php if(Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code)):?>onclick="setLocationAjax(this,'<?php echo $this->getAddToCartUrl($_product) ?>','<?php echo $_product->getId(); ?>')"<?php elseif(Mage::getStoreConfig("porto_settings/category/qty_field", $code)): ?>onclick="document.getElementById('addtocart_form_<?php echo $_product->getId(); ?>').submit()"<?php endif; ?>><i class="icon-cart"></i><span>&nbsp;<?php echo $this->__('Add to Cart') ?></span></a> 

         <?php else : ?> 
          <a href="<?php if(Mage::getStoreConfig("ajaxcart/addtocart/enablecategory", $code)):?>javascript:showOptions('<?php echo $_product->getId()?>')<?php else: ?><?php echo $this->getAddToCartUrl($_product) ?><?php endif; ?>" class="addtocart" title="<?php echo $this->__('Add to Cart') ?>"><i class="icon-cart"></i><span>&nbsp;<?php echo $this->__('Add to Cart') ?></span></a> 
          <a href='<?php echo $this->getUrl('ajaxcart/index/options',array('product_id'=>$_product->getId()));?>' class='fancybox' id='fancybox<?php echo $_product->getId()?>' style='display:none'>Options</a> 
         <?php endif;?> 

からの私のコードの任意のアイデア?

ありがとうございます!

答えて

0

たぶん、このような何か(ジャバスクリプト):

jQuery('.addtocart').each(function() { 
    var $self = jQuery(this), 
     oldOnClick = $self.attr('onclick'), 
     $product = $self.closest('.item'); 

    $self.attr('data-onclick', oldOnClick).removeAttr('onclick'); 
    $self.off('click').on('click', function() { 
     if($product.find('.input-text.qty').val() < 1) 
      return false; 
     else 
      eval(jQuery(this).data('onclick')); 
    }); 
}); 

ユーザーが 'カートに追加' をクリックし、量の値は> = 1

編集であるかどうかを確認:いくつかのものを修正..

+0

JavaScriptコードにコードを追加しようとしましたが、何も変わりません。まだ数量0の製品を追加することは可能です。 – Jakub

+0

カテゴリページはオンラインですか?あなたは私たちにリンクを送ることができますか? –

+0

はい。ここで:http://aquanew.web-testovani.cz/zeleny-stitek-63.html?mode=list – Jakub

0

は、カートに追加addtocartを無効とのアンカータグに無効=「disbled」追加するには、この条件を入れて

if($product->getProductDefaultQty() * 1 == 0){ 
    <a disabled = "disabled"></a> 
} 
else{ 
    // your normal code here for add to cart 
} 
+0

私はそれを試しましたが、変更した後に問題があります。数は何も起こりません。システムはまだ無効なバージョンのコードを使用しています。 – Jakub

+0

このコードが$ product-> getProductDefaultQty()が0でなければ、それがエスケープ状態になることを確認します –

関連する問題