使用Jquery复选框类型动态调用Shopify产品ID添加到购物车

时间:2015-06-17 05:11:30

标签: javascript jquery html css shopify

*解决方案位于底部* 我在这个问题上遇到了一些麻烦。

以下是我所拥有的:

我的产品页面上有自定义加售,我的意思是:

追加销售复选框:

    <ul class="upsell" style="margin-left:0px; margin-top:5px;">
    <li>
    <label>
    <img src="https://cdn.shopify.com/s/files/1/0386/0093/t/15/assets/.jpg?  14998" width="40px" height="40px" > 
     <input type="checkbox" id="chks1"/><span>Product Title <span>$9.99</span>         </span></label>
   </li>
   <li>
   <label>
   <img src="https://cdn.shopify.com/s/files/1/0386/0093/t/15/assets/.jpg?14998" width="40px" height="40px" > 
      <input type="checkbox" id="chks1"/><span>Product Title <span>$9.99</span>   </span></label>
    </li></ul>

和Jquery:

   <script>
   function triggerChange(){
   $('#chks1').trigger("change");
   }
   $('#chks1').change(function() {
   if(this.checked) {


  jQuery.post("/cart/add.js", {  quantity: 1,  id: 262626  });
   } else {

              jQuery.post('/cart/change.js', { quantity: 0, id: 2626262 });
    }
    });


  </script>

我的问题是它的手动方式......我有很多加价,我实际上必须显示上面几乎50次,包括jquery和一个片段中的复选框。

昨天我试过这个:

  <ul class="upsell" style="margin-left:0px; margin-top:5px;">
   {% for product in collections.name.products limit:4 %}
   <li{% cycle ' style="clear:both;"', '', '', ' class="last"' %}>
   <label>
   <img src="{{ product.featured_image |  product_img_url: 'thumb' }}">

    <input type="checkbox" id="chks{{ forloop.index }}"><span>{{   product.title }}                        <   span>  {{ product.price | money }}  </span></span>       </label>
    </li> 
  {% endfor %}
   </ul>
  </div>

  <script>
   function triggerChange(){
   $('#chks1').trigger("change");
   }
   $('#chks1').change(function() {
   if(this.checked) {


  jQuery.post("/cart/add.js", {  quantity: 1,  id: 262626  });
   } else {

              jQuery.post('/cart/change.js', { quantity: 0, id: 2626262 });
    }
     });


    </script>

这使得我只需要包含一个,它会根据集合调用自动生成。

我的问题:

我无法在Jquery帖子中动态生成ID:262626(这是正确的产品添加方式)

我无法弄清楚。

在这种情况下,有没有办法动态调用产品/变体ID?

********* SOLUTION **************** *********

想出来 - 这就是我想出的:

   <ul class="upsell" style="margin-left:0px; margin-top:5px;">

    {% for product in collections.atc-cart-checkbox.products limit:4 %}


   <li{% cycle ' style="clear:both;"', '', '', ' class="last"' %}  >
  <label>
   <img src="{{ product.featured_image |  product_img_url: 'thumb' }}">

   <input type="checkbox"  id="product-{{ product.variants.first.id }}" name="id" value="{{ product.variants.first.id }}" class="product-select-{{ product.id }}"/><span>{{ product.title }} <span class="upsellprice">
 {{ product.price | money }}<span class="was_price"> {% if product.price < product.compare_at_price_min %}
  {{ product.compare_at_price_min | money }}{% endif %}</span></span></span>    </label>
  </li> 

  <script type="text/javascript">

                 $('#product-{{ product.variants.first.id         }}').change(function() {
                   if(this.checked) {
                      jQuery.post("/cart/add.js", {  quantity: 1,  id: {{   product.variants.first.id }} });
                   }
                   else {
                      jQuery.post('/cart/change.js', { quantity: 0, id: {{ product.variants.first.id }} });
                   }
                });
              </script>
        {% endfor %}


    </ul>

完美的工作 - 希望能帮到任何人。

1 个答案:

答案 0 :(得分:0)

尝试- 在“产品”页面上有效

$(document).ready(function(){
    var idProduct = $('#ProductSelect-product-template').val();
    console.log(idVar);
});