我试图通过jQuery ajax调用将一个网页的数值(ids)列表传递给另一个.我无法弄清楚如何传递和读取列表中的所有值.我可以成功地发布和读取1个值,但不是多个值.这是我到目前为止
jQuery的:
var postUrl = "http://localhost:8000/ingredients/"; $('li').click(function(){ values = [1,2]; $.ajax({ url: postUrl,type: 'POST',data: {'terid': values},traditional: true,dataType: 'html',success: function(result){ $('#ingredients').append(result); } }); });
/成分/视图:
def ingredients(request): if request.is_ajax(): ourid = request.POST.get('terid',False) ingredients = Ingredience.objects.filter(food__id__in=ourid) t = get_template('ingredients.html') html = t.render(Context({'ingredients': ingredients,})) return HttpResponse(html) else: html = '<p>This is not ajax</p>' return HttpResponse(html)
使用Firebug,我可以看到POST包含两个ID,但是可能格式错误(terid = 1& terid = 2).所以我的成分看起来只有terid = 2.我究竟做错了什么?
编辑:
为了澄清,我需要在成分视图中的过滤器中使用我们的变量传递值[1,2].
解决方法
您可以通过request.POST.getlist(‘terid []’)在视图中访问此数组
在javascript中:
$.post(postUrl,{terid: values},function(response){ alert(response); });
在view.py中
request.POST.getlist('terid[]')
它对我来说是完美的.