Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何找到选中的表项?_Python_Html_Django_Jinja2 - Fatal编程技术网

Python 如何找到选中的表项?

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

我的UI中有一个这样的表

<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>