通过Ajax将关联阵列传递



我一直在尝试理解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. 您无法正确使用$.each()。尝试以下操作:

    $。每个($('[id $ =" - subtotal"]'(,函数(键,元素({ subtotal = some_math;
    id = some_id_number; data ['id-' string(id(] =小计}(;


  1. 您应该将data声明为对象,而不是数组。数组只能具有数字键。一个对象可以包含包含其他字符的键。如果您的console.log(data),则会看到data如果是对象,则将包含数据,如果以数组为单位,则将为空。因此,请尝试以下操作:

  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>

最新更新