我一直在努力了解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( '价格')
答案 0 :(得分:2)
您没有正确使用$.each()
。试试这个:
$。each($(' [id $ =" -subtotal"]'),function(key,element){
subtotal = some_math;
id = some_ID_Number;
数据[' 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>
&#13;