gpt4 book ai didi

javascript - Ajax Django 简单复选框操作

转载 作者:行者123 更新时间:2023-11-28 08:05:08 25 4
gpt4 key购买 nike

表格的每一行都有一个复选框。我的目标是选中/取消选中复选框并更新 view.py 中的数据库。很抱歉问这个简单的问题,但我已经学习 Ajax 几天了,它仍然是一个未经探索的世界。这是我的代码:

HTML
...
<table>
...
<tr><td>
<form action="mytemplate.html" method="GET" id="myform">{% csrf_token %}
<input class="chktest" name="test" type="checkbox" value= "{{number}}">
</form>
</td></tr>
<tr><td>
<form action="mytemplate.html" method="GET" id="myform">{% csrf_token %}
<input class="chktest" name="test" type="checkbox" value= "{{number}}">
</form>
</td></tr>
...
</table>

**JQUERY**

<script type="text/javascript">
$(document).ready(function() {
$('table tr td .chktest').click(function() {
$.ajax({
data: $(this).serialize(),
type: $(this).attr('method'),
url: $(this).attr('action'),
success: function(response) {
// on success..
},
error: function(e, x, r) {
// on error...
}
});
return false;

});
});
</script>

**MYVIEW.PY**
...
if request.is_ajax():
number = request.GET['number']
for obj in tab_company.objects.filter(id_number=number):
obj.update(check=not obj.check)
message = "Hello!"
return HttpResponse(json.dumps({'message': message}))

这样,当我第一次单击复选框时,我会得到每一行的正确数字。如果我在同一个复选框上再次检查,它不会返回 False(取消选中)。我哪里错了?

最佳答案

问题出在这一行

tab_company.objects.filter(id_number=number).update(check=True)`

您将该值设置为 True,而不是切换它。您可以尝试以下操作:

for obj in tab_company.objects.filter(id_number=number):
obj.update(check=not obj.check)

关于javascript - Ajax Django 简单复选框操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24882238/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com