I am a beginner in jquery so please bear with me. I have a jquery function that allows me to select multiple checkboxes and create a string as follows:
function getSelectedVals(){
var tmp =[];
$("input[name='checks']").each(function() {
if ($(this).attr('checked'))
{
checked = ($(this).val());
tmp.push(checked);
}
});
var filters = tmp.join(',');
alert(filters)
return filters;
}
I then call a django view function and pass the string as follows:
selected = getSelectedVals();
var myurl = "/bills/delete/?id=" + selected;
$.ajax({
type: "GET",
url: myurl,
data: selected,
cache: false
});
On the server I have a delete view function that iterates over the checkbox values and manipulates a list.
def delete(request):
global myarray
idx = request.GET[u'id']
listidx = idx.split(',')
for l in listidx:
value = myarray[int(l)]
myarray.remove(value)
return HttpResponse("/bills/jqtut/")
The problem is that on the server all the indexes I am sending as the GET string are not being handled, only half are.
Please help me! Thanks
From what I see, you do it the way around. You should set the same name on all checkboxes. I don't know why do you send it by GET, I'd suggest sending it by POST.
<input type="checkbox" name="vehicle" value="Bike" />
<input type="checkbox" name="vehicle" value="Car" />
<input type="checkbox" name="vehicle" value="Airplane" />
Then, use getlist() method in your view:
def delete(request):
values = request.POST.getlist(u'vehicle')
# Handling goes here.
But anyway, unless you really need to do custom stuff (however special cases are not special enough to break the rules ;), use Django forms. There already is a checkbox list OOTB. I'm not sure why do you even consider using JavaScript in this very case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With