【问题标题】:jQuery - passing arrays in post requestjQuery - 在发布请求中传递数组
【发布时间】:2012-06-25 12:07:38
【问题描述】:

我想在 jquery $.post() 请求中传递数组。

HTML:

<input type="checkbox" id="add-check-1e30">
<input type="checkbox" id="add-check-1230">

从上面的 HTML 示例中,数组应该是这样的 = ['1e30', '1230']

用于发送 $.post() 的 jQuery:

$("#addbox-add").click(function(){

var ukeys = new Array();
$("input[type=checkbox]:checked").each( function() {
a = $(this).attr("id");
b = a.split('-').pop();
ukeys.push(b);
});

$(".addbox").remove();

$.post("/information/portfolio/add/", {'ukeys': ukeys }, function(data) {
for(i=0; i<data.length; i++)
{
    ukey = data[i].ukey;
    image = data[i].image;
    service = data[i].service;
    if(data[i].smallimage != "")
    {
        image = data[i].smallimage;
    }
    if (image == null)
    {
        $(".portfolio-preview").append('<li class="portfolio-item" id="portfolio-item-'+service+'-'+ukey+'"></li>');
    }
    else
    {
        $(".portfolio-preview").append('<li class="portfolio-item" id="portfolio-item-'+service+'-'+ukey+'"><img class="portfolio-image" src="'+image+'" width="150px" height="150px"></li>');
    }
}
});

});

jQuery中的数组变量没有问题,不知道怎么在post请求中发送。

我应该在服务器中获取这两个值 1e30 和 1230。但是我在服务器中得到的值是空的。

这是在 Python/Django 中获取值的服务器代码:

def portfolio_add(request):
    ukeys = request.POST.get('ukeys', '')   
    .....etc.....etc......

谢谢!

【问题讨论】:

  • 请将您的代码缩减至相关位。例如,在那个 HTML 中,所有这些 div 和 span 都是无关紧要的,因此很难找到真正有趣的东西,即复选框。

标签: javascript jquery python django


【解决方案1】:

你必须使用:

request.POST.getlist('ukeys', '')

【讨论】:

  • 我收到此错误:getlist() takes exactly 2 arguments (3 given)
  • 对不起,request.POST.getlist('ukeys')
  • 我仍然没有在服务器端获得任何值。
  • def portfolio_add(request): ukeys = request.POST.getlist('ukeys') return HttpResponse(simplejson.dumps(ukeys), mimetype='application/json')
  • 我正在提醒 jQuery 中的值,我什么也没得到。
猜你喜欢
  • 2021-03-14
  • 1970-01-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多