在变量中从js向服务器端发送序列化数据

时间:2012-11-23 13:11:23

标签: javascript python django serialization query-string

我正在尝试通过url中的查询字符串/变量发送序列化数据。如你所知,当我们在js中进行序列化时,它会自己构建一个查询字符串。我将这些数据发送到服务器端,用django编写。我该怎么做或如何收集django代码中的数据。

这就是我在做的事。

selected = $('input:checkbox:checked').serialize();

这给我的结果为multiselect_select_month=10&multiselect_select_month=11&multiselect_select_month=05

我想在带有其他变量的url中发送它,并在单个变量中收集孔字符串(multiselect_select_month=10&multiselect_select_month=11&)。 像

这样的东西
serialized = 'multiselect_select_month=10&multiselect_select_month=11'

在服务器端,我正在写serialized = request.GET.get('serialized', '')

如何在单个变量中发送该序列化字符串(这是一个查询字符串),以便我可以在服务器端捕获它。

注意:我想用上面的序列化数据发送其他变量。

2 个答案:

答案 0 :(得分:0)

您需要对代码serialized进行网址编码,然后您可以将其发送到一个变量中。

serialized = encodeURIComponent(serialized);
var link = "http://host.com/?data=" + serialized;

答案 1 :(得分:0)

此代码将所有multiselect_select_month值连接到1个参数中 (增加了显着减少参数长度的额外好处)

var multiSelects = [];
$('input:checkbox:checked').each(function(){
    multiSelects.push(this.value);
});
var parameter = "?multiselect_select_month=" + multiSelects.join(',');
//Will return "?multiselect_select_month=10,11,05" instead of "multiselect_select_month=10&multiselect_select_month=11&multiselect_select_month=05"

然后,您可以在ultiselect_select_month上获取explode参数服务器端和','

string.split('10,11,05', ',')