html 中用于生成按钮的唯一 ID

Unique ID in html for generating Buttons

抱歉,如果标题有误导性。

我遇到了以下问题。我正在使用 Genshi 在 HTML 中创建多行。对于每一行,我在行尾都有一个按钮用于删除。

代码如下所示:

<form action="/deleteAusleihe" method="post">      
<table>
  <tr>
    <th>ID</th>
    <th>Person</th>
    <th>Buch</th>
    <th></th>
  </tr>

<tr py:for="v in verleihen">
  <input type = "hidden" value="v.id" name="toDelete"/>
          <td py:content="v.id">Vorname der Person</td>
          <td py:content="v.kundeID">Name der Person</td>
          <td py:content="v.buchID">Straße der Person</td>
          <td>
          <input type="submit" name="submit" value="Löschen"/>
          </td>
          <br/>  
</tr>
</table>
</form>

输入类型 ="hidden" 应存储每个 id 的值,以便我稍后能够识别该行。

当我现在尝试删除时,假设我填充了 2 行,我得到 2 个 id 作为参数,这对我来说是合乎逻辑的,但我不知道如何解决它。

deleteAusleihe 函数如下所示:

@expose()
def deleteAusleihe(self,toDelete,submit):
    Verleih1 = DBSession.query(Verleih).filter_by(id=toDelete)
    for v in Verleih1:
        DBSession.delete(v)
        DBSession.flush()
        transaction.commit()
    redirect("/Verleih")

在此先感谢您的帮助!

问题是 <form> 元素内的所有隐藏输入都会立即提交。

您可以通过多种方式解决此问题。可能最简单的方法是将表单标签移动到循环内,这样就有多个表单,每个表单只包含一个输入和按钮。

<table>
  <tr>
    <th>ID</th>
    <th>Person</th>
    <th>Buch</th>
    <th></th>
  </tr>

<tr py:for="v in verleihen">
<form action="/deleteAusleihe" method="post"> 
  <input type = "hidden" value="v.id" name="toDelete"/>
          <td py:content="v.id">Vorname der Person</td>
          <td py:content="v.kundeID">Name der Person</td>
          <td py:content="v.buchID">Straße der Person</td>
          <td>
          <input type="submit" name="submit" value="Löschen"/>
          </td>
          <br/>  
</form>
</tr>
</table>
</form>

这是代码。