通过Ajax传递关联数组

时间:2017-06-28 11:42:17

标签: jquery arrays json ajax django

我一直在努力了解AJAX,我确实设法发送单个数据。但是当我尝试发送阵列时,没有任何东西可以通过。我试图将其格式化为JSON,但在这方面并没有真正成功。我通过任何提示和技巧的组合搜索了stackoverflow,几乎让我一路走来。

这是JS没有大部分数学来得到价格:

    var data = [];

    $('[id$="-subtotal"]').each(function () {
      subtotal = some_math;          
      id = some_ID_Number;
      data['id-' + String(id)] = subtotal
    });

    $.ajax({
      url: '/test/',
      type: 'POST',
      dataType: "JSON",
      data: {
        'prices': data,
        'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val()
      },
      success: function (data) {

      }
    });

我一直试图通过以下方式访问数组:

  

request.POST.get( '价格')

1 个答案:

答案 0 :(得分:2)

  1. 您没有正确使用$.each()。试试这个:

    $。each($(' [id $ =" -subtotal"]'),function(key,element){   subtotal = some_math;
      id = some_ID_Number;   数据[' ID - ' + String(id)] =小计 });

    1. 您应该将data声明为对象,而不是数组。数组只能有数字键。对象可以包含包含其他字符的键。如果您console.log(data),如果它是一个对象,您会看到data将包含数据,如果初始化为数组,它将为空。所以试试这个:
    2. 
      
        var data = {};
      
        $.each($('*'), function() {
          subtotal = Math.random() * 100;
          id = Math.random() * 100;
          data['id-' + String(id)] = subtotal
        });
      
        console.log(data);
      
      <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
      &#13;
      &#13;
      &#13;