jquery - 通过 Ajax 传递关联数组

标签 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('prices')

最佳答案

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

    $.each($('[id$="-subtotal"]'), 函数(键,元素){ 小计 = some_math;
    id = 某个 ID 号; data['id-' + String(id)] = 小计 });

<小时/>
  • 您应该将 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>

    关于jquery - 通过 Ajax 传递关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44801428/

    相关文章:

    python - : for displaying all elements in a multidimensional array in python 3. 1

    jquery - 成功 getJSON 操作后 data.length 未定义

    javascript - 如何在伊斯兰或 HijriDate 中添加天数?

    jquery - 单击操作在 'closed' 和 'open' 之间切换类时滑动切换

    javascript - 可堆叠弹出 Bootstrap 模式关闭问题

    java - 如何使用 gson 库将字符串转换为 JsonObject

    javascript - 使用ajax将JSON发送到PHP,数据出现问题

    javascript - 主干内存泄漏: always do remove() before render()

    java - 方法过滤数组中的偶数值并将它们返回到新数组中

    arrays - 如何在golang中将项目添加到struct中的数组