抱歉,如果标题具有误导性。
我遇到以下问题。我正在使用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")
提前感谢您的帮助!
答案 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>
这是代码。