जवाबों:
पहले कार्ट टेम्पलेट को संपादित करें /app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
और आसान पहुंच के लिए फॉर्म एलिमेंट पर एक आईडी जोड़ें। मान लें कि आप 'id = "कार्ट-फ़ॉर्म" जोड़ते हैं;
अब कार्ट आइटम प्रदान करने वाले टेम्प्लेट संपादित करें:
और <input>
नाम cart[<?php echo $_item->getId() ?>][qty]
जोड़ने वाले तत्व पर :
onchange="$('cart-form').submit()"
लेकिन मैं ऐसा करने की सलाह नहीं देता। यह वास्तव में उपयोगकर्ताओं के लिए कष्टप्रद है। (कम से कम मेरे लिए)।
मान लें कि आपकी साइट में jQuery नो-संघर्ष मोड में शामिल है, तो यहां अतुल्यकालिक (बहुत कम कष्टप्रद!) करने का एक तरीका है।
jQuery(document).ready(function(){
jQuery('#shopping-cart-table')
.on(
'change',
'input[name$="[qty]"]',
function(){
var form = jQuery(jQuery(this).closest('form'));
// we'll extract the action and method attributes out of the form
// kick off an ajax request using the form's action and method,
// with the form data as payload
jQuery.ajax({
url: form.attr('action'),
method: form.attr('method'),
data: form.serializeArray()
});
}
);
});
मुझे यह इंगित करना चाहिए कि यह निम्नलिखित धारणाएँ बनाता है:
अपनी परिस्थितियों से मेल खाने के लिए चयनकर्ताओं को क्रमशः लाइनों 2 और 5 पर कोड में समायोजित करना आसान होना चाहिए।
इन दो फ़ाइलों को संपादित करें
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
और नाम cart[<?php echo $_item->getId() ?>][qty]
जोड़ने वाले तत्व पर :
onchange="this.form.submit()"
यदि आपका jQuery संस्करण पुराना है, तो आप सफल नहीं होंगे। मुझे एक रास्ता मिल गया है जो इस प्रकार है, डालने के लिए हमारे मित्र मारियस के निर्देशों का पालन करें
/app/design/frontend/{package}/{theme}/template/checkout/cart.phtml
और आसान पहुंच के लिए फार्म तत्व पर एक आईडी जोड़ें। आइए आपको जोड़ते हैंid="cart-form"
अब फ़ाइल खोलें
app/design/frontend/{package}/{theme}/template/downloadable/checkout/cart/item/default.phtml
और फ़ाइल के अंत तक स्क्रॉल करें और आपको जावास्क्रिप्ट मिलेगा जो मात्रा का वेतन वृद्धि और गिरावट करता है। फ़ंक्शन इस तरह दिखेगा:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
}
}
इसके लिए बदलें:
function plusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
qty++;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
function minusQty(itemId){
qty = $('qty'+itemId).value;
qty = parseInt(qty);
if(qty>0){
qty--;
$('qty'+itemId).value = qty;
document.getElementById("cart-form").submit();
}
}
यदि आपके पास jQuery लोड (अभी तक) नहीं है, तो आप <input>
तत्व को भी खोज सकते हैं (या मेरे मामले में एक <select>
तत्व जब से मैंने नाम के साथ राशि का चयन करने के लिए एक ड्रॉपडाउन फ़ील्ड बनाया है) name="cart[<?php echo $_item->getId() ?>][qty]"
और इसे जोड़ें:
onchange="this.form.submit()"
आपके द्वारा संपादित की जाने वाली phtml फ़ाइल यहां स्थित है:
app/design/frontend/{package}/{theme}/template/checkout/cart/item/default.phtml