Wpis z mikrobloga

#jquery #magento #programowanie

Mirki, taki problem mam z kodem poniższej, który dodaje przez ajax produkty do koszyka...
Jestem jeszcze #januszejquery i nie mogę sobie z tym poradzić - mam więcej niż jeden formularz o id "productaddtocartform" z końcówkami idproduktu jest jakaś opcja żeby poniższy kod obsługiwał wszystkie formularze?

var productAddToCartForm = new VarienForm('product
addtocartform');
productAddToCartForm.submit = function (button, url) {
if (this.validator.validate()) {
var form = this.form;
var oldUrl = form.action;

if (url) {
form.action = url;
}
var e = null;
//Start of our new ajax code
if (!url) {
url = jQuery('#product
addtocartform').attr('action');
}
var data = jQuery('#product
addtocartform').serialize();
data += '&isAjax=1';
jQuery('#ajax
loader').show();
try {
jQuery.ajax({
url: url,
dataType: 'json',
type: 'post',
data: data,
success: function (data) {
jQuery('#ajax_loader').hide();
alert(data.status + ": " + data.message);
}
});
} catch (e) {
}
//End of our new ajax code
this.form.action = oldUrl;
if (e) {
throw e;
}
}
}.bind(productAddToCartForm);
  • 14
Nie rozumiem :( Na początku generowana jest lista formularzy, które mogę sobie dowolnie zmodyfikować (i dodać atrybuty). Po kliknięciu w przycisk ma pobrać dane z formularza i wysłać go przez ajax do URL z formularza w którym został kliknięty przycisk.
@InstruktorLewitacji: Ok, inaczej przekaż po kliknięciu submit konkretną wartość(całe id, żeby można było rozpoznać 1 i tylko 1 formularz).
W ten sposób: $("[id^='productaddtocartform']");
Złapiesz wszystkie id zaczynające się od "product
addtocartform" z tym, że nie widzę tutaj sensu takich działań, poza tym to nie opłacalne (wydajnościowo, względem bezpieczeństwa itd.).
@Cilthal: @InstruktorLewitacji: Przepraszam, chyba zamotałem, późna pora. Jeśli możesz podeślij mi link na pw, zerknę jutro, to pierdoła, ale jeżeli ktoś nie ma styczności z jquery, to czasami potrafi zająć trochę czasu zanim się dojdzie co ma jak działać.