jQuery使用post为关联数组

时间:2013-06-20 21:51:55

标签: jquery

我需要将数据发布到这样的网址:

http://www.your_domain.com/checkout/cart/add?product=68&qty=1&super_attribute[528]=55&super_attribute[525]=56

See here for Magento documentation on query string

我当前的代码看起来像这样,但它无效。

var myObject = {
    super_attribute: {configOptionSuperAttribute: configOption}
};

        jQuery.post(productAddToCartURL, { product: productId, qty: qty, super_attribute: jQuery.param(myObject)  })
        .done(function(data) {
          alert("Data Loaded: " + data);
        });

问题在于super_atribute []。如何使myObject兼容?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

根据jQuery.param(内部用于序列化数据),您的数据应如下所示:

jQuery.post(
    productAddToCartURL, 
    {product: productId, qty: qty, super_attribute: configOption},
    function() { ... }
);

其中configOption

形式的对象
var configOption = {
    528: 55,
    525: 56
};

答案 1 :(得分:1)

我不知道您是否错误地粘贴了代码,但您的JavaScript存在语法错误。这是无效的,因为您有一个未公开的报价。也许你的意思是:

jQuery
    .post(
        productAddToCartURL, 
        { product: productId, qty: qty, 'super_attribute[]': configOption })
    .done(function(data) { alert("Data Loaded: " + data); });

或许这个? (您的super_attribute[]属性名称很奇怪):

jQuery
    .post(
        productAddToCartURL, 
        { product: productId, qty: qty, super_attribute: configOption })
    .done(function(data) { alert("Data Loaded: " + data); });