我在HTML中有一个视图,它显示一个带有与会者的表格列表;
<table>
{% for people in Attendees %}
<tr>
<td>{{ people.id }}</td>
<td>{{ people.name }}</td>
<td>
<a id='deleteAttendeeButton' class="btn btn-primary btn-xs">Delete</a>
</td>
</tr>
{% endfor %}
</table>
该表有一个所有条目的删除按钮,点击后,我正在使用AJAX进行GET请求,如下所示;
$("#deleteAttendeeButton").on("click", function () {
$.ajax({
url: '/modifyAttendee/?id={{ people.id }}',
type: 'GET',
})
});
我想使用AJAX发送people.ID变量进行查看,以便视图可以确定要在数据库中删除的对象。然而,问题是我似乎无法传递AJAX中的jinja变量。
我在AJAX声明中遗漏了什么?如果没有,那么什么是理想的解决方案?
注意:我不想在按钮中使用'href',因为我不想重新加载页面。
答案 0 :(得分:0)
嗯,它不是那样的。模板标记在渲染时进行评估,但您需要单击的元素的ID。您可以使用data
元素来保存ID并将其恢复到JS中。
这里还有其他一些问题;特别是,HTML元素ID必须是唯一的,但是你对循环中的每个链接都使用相同的元素。你应该使用一个类。
<a class='deleteAttendeeButton btn btn-primary btn-xs' data-people_id="{{ people.id }}">Delete</a>
...
$(".deleteAttendeeButton").on("click", function () {
var people_id = $(this).data('people_id');
$.ajax({
url: '/modifyAttendee/?id=' + people_id,
type: 'GET',
})
(注意,除非你专门配置它,否则Django不使用Jinja;这几乎可以肯定是Django模板语言类似但不一样。但它不会影响你的问题。)