我有以下复选框定义:
{% for member in team_profile %}
<div class="checkbox">
<label> <input type="checkbox" id="checkboxes" value="{{ member.user_id }}">{{ member.first_name }}</label>
</div>
{% endfor %}
team_profile只包含一堆成员名称。所以我想得到value={{member.userid}}
的东西。
所以对于我的jquery我有:
var myCheckboxes = new Array();
$("input:checked").each(function() {
data['myCheckboxes[]'].push($(this).val());
});
$.ajax({
type:'POST',
url:'createEvent/',
data:{
name: name,
myCheckboxes: myCheckboxes,
}
});
所以我想收集所有值并将它们存储在一个名为myCheckboxes
的数组中。但我收到错误data is not defined
。还有其他办法吗?
谢谢, 安迪
编辑:
好的,我做了以下更改:
var myCheckboxes = new Array();
$("input:checked").each(function() {
data['myCheckboxes[]'].push($(this).val());
});
$.ajax({
type:'POST',
url:'createEvent/',
data:{
name: name,
myCheckboxes: myCheckboxes,
}
});
和我的views.py
:
def createEvent(request):
if request.method == "POST":
member = request.POST.get('myCheckboxes')
print(member)
但是当我打印出会员时,None
会被输出。
答案 0 :(得分:1)
一些建议......
首先,请避免使用重复的id="checkboxes"
属性,例如使用name="checkboxes"
:
{% for member in team_profile %}
<div class="checkbox">
<label> <input type="checkbox" name="checkboxes" value="{{ member.user_id }}">{{ member.first_name }}</label>
</div>
{% endfor %}
此外,将数据添加到数组的正确方法是使用myCheckboxes.push(...)
:
var myCheckboxes = new Array();
$("input:checked").each(function() {
myCheckboxes.push($(this).val()); // changed this line
});
$.ajax({
type:'POST',
url:'createEvent/',
data:{
name: name,
myCheckboxes: myCheckboxes,
}
});
最后,按如下方式获取服务器上的值:
def createEvent(request):
if request.method == "POST":
member = request.POST.getlist('myCheckboxes[]')
print(member)