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

时间:2016-05-31 09:03:57

标签: python html python-2.7 turbogears2 genshi

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

我遇到以下问题。我正在使用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>

输入类型=“隐藏”应该存储每个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")

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

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

有多种方法可以解决这个问题。可能最简单的方法是在循环中移动form标签,这样就有多个表单,每个表单只包含一个输入和按钮。

答案 1 :(得分:1)

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

这是代码。