我一直在尝试理解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('价格'(
-
您无法正确使用
$.each()
。尝试以下操作:$。每个($('[id $ =" - subtotal"]'(,函数(键,元素({ subtotal = some_math;
id = some_id_number; 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>