如何在AJAX发布的Django中获取2D数组中的数据

时间:2014-04-23 14:31:12

标签: javascript jquery django

我通过ajax向django发送2D列表

这是我发送ajax请求的功能

    var tid = $(document).find(".table-box a").data("tid")
var newFood = [];

$('#order_table td.food_name').filter(function() {
    return $(this).data('status') == 'new';
}).each(function() {
    newFood.push( [$(this).text(), $(this).siblings('.quantity').text(), $(this).siblings('.price').text()] );
});

// This will create a 2D array like this [['food_name1','1','$10.00'],['foodname2', '2', '$11.00']] 

$.ajax({
    type: "POST",
    url: $(this).data('url'),
    data: {tid:tid, newFood:newFood},
    success: function success(data){
        alert("Success")
    },
});

我在django打印request.POST 我得到了

<QueryDict: {u'tid': [u'12'], u'newFood[0][]': [u'chick noodle', u'1', u'$2.00'], u'newFood[1][]': [u'Beef Rice', u'1', u'$29.00']}>

当我打印request.POST.get('newFood[0][]')时,我得到了

$2.00

我也试过request.POST.getlist('newFood[0]'),但我得到空列表

[]

有关如何解决此问题的任何想法?我怎样才能逐一检索每个项目?

2 个答案:

答案 0 :(得分:0)

我就是这样做的。

        for i,j in request.POST.items():
            print i, request.POST.getlist(i)

我可以打印关键i = newFood [i] []并列出j = [&#39;食物&#39;,&#39;数量&#39;,&#39;价格&#39;]

答案 1 :(得分:0)

这就是我的解决方法

for i in range(RowNum):
        data = request.GET.getlist(f'newFood[{i}][]') 
        print (data[0] +' , ' + data[1]+','+data[3])

其中RowNum是2d数组中的行(高度)数。 data [i]是每行(宽度)中的元素。希望对您有所帮助