我有以下表格,重复项目:
@(adverts: List[models.AdvertModel])
@if(adverts.size() > 0 && adverts != null) {
@helper.form(action = routes.UserController.editAdvert()) {
@for( (advert, index) <- adverts zip (Stream from 0)) {
<div>@adverts.get(index).title</div>
<button type="submit" name="delete" id="delete_@index">delete</button>
}
}
和这个控制器:
public Result editAdvert() {
String[] indices = request().body().asFormUrlEncoded().get("delete");
if (indices != null) {
// delete advert
}
return ok();
}
我希望能够根据其ID删除广告,但使用当前代码,我的数组包含字符串"delete"
而不是"delete_0"
。
如何获取单击按钮的索引?
答案 0 :(得分:0)
我终于明白了:
<强> tldr:强>
将value="delete_@index"
添加到按钮。
更长的回答:
request().body().asFormUrlEncoded().get("delete")
返回的值
保存在scala模板中value
按钮的name="delete"
属性中。
因此,通过向按钮添加value="delete_@index"
,我们将获得一个字符串,例如delete_0
。
正如@danielnixon评论的那样,这不是特定于游戏的行为,而只是html表单的工作方式。