Javascript 如何在金字塔中处理已发布的JS数组
我有一个AJAX请求:Javascript 如何在金字塔中处理已发布的JS数组,javascript,jquery,python,pyramid,Javascript,Jquery,Python,Pyramid,我有一个AJAX请求: var groupName = $('#group-input').val(); var cidArray = []; $("#sortWrapper .contact-wrapper").children('.is-checked').each(function() { cidArray.push($(this).attr('cid')); }); $.ajax({ type: "POST", url: "/ajax/cre
var groupName = $('#group-input').val();
var cidArray = [];
$("#sortWrapper .contact-wrapper").children('.is-checked').each(function() {
cidArray.push($(this).attr('cid'));
});
$.ajax({
type: "POST",
url: "/ajax/create/",
data: {group_name: groupName, group_user_id: cidArray},
cache: false,
success: function(result) {
alert(groupName); // These both alert the proper values
alert(cidArray);
}
});
将数据发布到金字塔中的处理程序。有关部分包括:
group_name = request.POST.get('group_name', None)
group_user_id = request.POST.getall('group_user_id')
for index,uid in enumerate(group_user_id):
# perform actions on each user...
print uid
我收到预期的组名
;但是,我在接收来自JS数组的值时遇到了问题cidaray
。数组按预期填充,但当我需要使用group\u user\u id
键检索这些值时,就会出现问题
我似乎只能从上面得到一个空列表[]
,或者当使用不同的语法时:
request.POST.get('group_user_id', [])
它默认为空列表
注:不用说,…中uid的前面尚未测试或完善,但如果可能,我希望我的组用户id
的最终结果是Cidaray
中最初存在的那些值的列表
非常感谢你的帮助。谢谢。所以,在经历了无意识的辛苦和痛苦之后,我发现了如何解决这个问题:
而不是
request.POST.getall('group_user_id') # This is wrong
我需要:
request.POST.getall('group_user_id[]') # This works
getall
检索一个键下的所有值,[]
处理它是一个数组的事实。其他一切都没变
希望这能在某些方面帮助到别人 所以,在经历了无意识的辛劳和痛苦之后,我发现了如何解决这个问题:
而不是
request.POST.getall('group_user_id') # This is wrong
我需要:
request.POST.getall('group_user_id[]') # This works
getall
检索一个键下的所有值,[]
处理它是一个数组的事实。其他一切都没变
希望这能在某些方面帮助到别人 会有帮助吗?它使用req.json\u body会有帮助吗?它使用req.json\u body数据的内容类型是什么?POST只处理表单编码的数据,而不是jsonEach。添加到cidArray的值是一个数字。我的目标是将这个数组(一定数量的数值)传递给我的python代码,以便在将来的操作中使用每个数组。我的印象是,这是发布数据的正确语法。如上所述,我还有一个名为groupName的字符串(可以说,它在Python代码中被成功捕获)。这有帮助吗?数据的内容类型是什么?POST只处理表单编码的数据,而不是jsonEach。添加到cidArray的值是一个数字。我的目标是将这个数组(一定数量的数值)传递给我的python代码,以便在将来的操作中使用每个数组。我的印象是,这是发布数据的正确语法。如上所述,我还有一个名为groupName的字符串(可以说,它在Python代码中被成功捕获)。这有帮助吗?如果我可以提供一个提示的话。如果您想查看web应用程序接收数据的方式,请查看您喜爱的浏览器的“网络”选项卡中的请求,或者,您可以随时记录重新请求。str(请求)将为您提供整个http消息。实际上,这就是我在网络选项卡中查找此答案所做的工作(尽管浪费了太多时间)。但我不知道str(请求)。我将来一定会利用这一点。谢谢你的建议!是的,显然不要在生产中这样做,但是当你需要它的时候它很方便:)所以,如果我可以提供一个提示。如果您想查看web应用程序接收数据的方式,请查看您喜爱的浏览器的“网络”选项卡中的请求,或者,您可以随时记录重新请求。str(请求)将为您提供整个http消息。实际上,这就是我在网络选项卡中查找此答案所做的工作(尽管浪费了太多时间)。但我不知道str(请求)。我将来一定会利用这一点。谢谢你的建议!是的,显然在生产中不要这样做,但当你需要它时,它很方便:)