Python 如何找到选中的表项?
我的UI中有一个这样的表Python 如何找到选中的表项?,python,html,django,jinja2,Python,Html,Django,Jinja2,我的UI中有一个这样的表 <table> <thead> <tr> <th>DELETE</th> <th>EDIT</th> <th>No</th> <th>Name</th> </tr> </thead> <tbody
<table>
<thead>
<tr>
<th>DELETE</th>
<th>EDIT</th>
<th>No</th>
<th>Name</th>
</tr>
</thead>
<tbody id="bodyTable">
{% for item in person_list %}
<tr>
<td>
<a href="#">
Delete
</a>
</td>
<td>
<a href="">
EDIT
</a>
</td>
<td>{{item.person_no}}</td>
<td>{{item.person_name}}</td>
</tr>
</tbody>
</table>
删除
编辑
不
名称
{个人列表%中的项目的%
{{item.person{u no}
{{item.person_name}
还有一个选项是“编辑”和“删除”我的表格项目。我想知道如何查找被单击以进行删除或编辑的项目?
该项目应该从数据库中删除或编辑,因此我需要找到单击的项目并将该id发送到我的视图。首先,这需要JavaScript。任何时候,只要你想通过点击来做一些事情,而不仅仅是加载一个新页面,你就需要处理JS 第二,将JS直接放在HTML中是非常重要的。因此,类似于
href=“removietem({{item.id}}})”
的内容将意味着您无法使用,因此意味着您需要采取额外的步骤来避免和攻击。您应该确保您使用的是CSP,这样您就可以确切地知道您的站点上正在运行什么
第三,链接用于转到其他页面。最好使用div或按钮进行此类操作,否则必须采取其他步骤来抑制链接行为。(您需要进行一些CSS样式设置,以使div看起来可以单击。)
正确的解决方案是将JS放在一个单独的文件中,然后在相关链接上添加一个处理程序。您的代码将如下所示:
js/items.js
items.html(Jinja模板)
{%用于个人列表%中的项目]
删除
编辑
{%endfor%}
将其保留为自定义数据-*
属性为什么您不能简单地编写
?@Selcuk我不想转到其他页面!例如,当用户单击“删除”时,我希望从数据库中删除该对象。然后停留在“显示表”页面,然后使用ajax,但生成URL的逻辑是相同的。@Selcuk您能解释一下您的第一条评论吗?我在views.py中有一个名为“Person”的函数,我的本地URL如下:localhost:8000/Person
// Runs on page load
$(function() {
$('.delete-item').on('click.myitems', confirmDeleteItem);
$('.edit-item').on('click.myitems', editItem);
});
function editItem(e) {
let item_id = parseInt($(e.target).closest('tr').attr('data-item-id'), 10);
// Do something with your item ID.
}
function confirmDeleteItem(e) {
let item_id = parseInt($(e.target).closest('tr').attr('data-item-id'), 10);
if (confirm('Do you really want to delete "' + item_id + '"?')) {
// Do it!
}
}
{% for item in person_list %}
<tr data-item-id="{{item.id}}">
<div class="delete-item">Delete</div>
<div class="edit-item">Edit</div>
</tr>
{% endfor %}
<script src="{{ url_for('static', filename='js/items.js') }}"></script>