注意: 这是对旧帖子的重写,以澄清所询问的内容。
假设我有一个显示一组行的表单(例如,顺序中的行),我想在每行之外放置一个“删除”按钮,但不幸的是我无法创建单个表单每一行。
另外,假设表单转到“通用操作路径”,即“editCart”控制器。
为了示例,我们假设在表单中还有其他一些操作,例如向数量中添加一个。
必须在同一表格中使用多个提交按钮。
如果它只是一行,那很简单,只需在按钮上添加名称/值即可!完成!
<form action="/process-edition" method="post">
<div>My nice things</div>
<button type="submit" name="subAction" value="delete">Delete</button>
<button type="submit" name="subAction" value="addOne">+1</button>
</form>
这就是说“嘿,行动的控制者/process-edition
,我要做出subAction delete
”。或者“subAction addOne
”。
但是当我们有多行时,您需要说“删除此产品”或“添加此产品之一”。
在这种情况下,您需要按钮提交两个值:a)subAction,b)要编辑的产品的ID。
<form action="/process-edition" method="post">
<ul>
<li>
Product 1234: 'orange'
<button type="submit" name="subAction" value1???="delete" value2???=1234>Delete</button>
<button type="submit" name="subAction" value1???="addOne" value2???=1234>+1</button>
</li>
<li>
Product 6789: 'lemmon'
<button type="submit" name="subAction" value1???="delete" value2???=6789>Delete</button>
<button type="submit" name="subAction" value1???="addOne" value2???=6789>+1</button>
</li>
</ul>
</form>
我认为在这种情况下,delete
和addOne
是原始帖子所要求的“静态分配值”,1234
和6789
将是“隐藏的“来自数据库的值”。按钮“知道”有关Id但不显示Id本身。
当然,这可以通过将多个表单设置为具有每个表单中的隐藏字段的多个不同控制器来解决。但是我们假设您已经收到已经拥有该表单的布局,并且您无法在其中创建多个表单,因此禁止您隔离要发送或不发送的隐藏字段。
邮政的原文:
必须向用户隐藏一个值,并且必须显示另一个值。从数据库中检索隐藏值,并且显示的值是静态分配的值?
答案 0 :(得分:6)
是的,使用其他工具。
<button type="submit" name="buttonname" value="hiddenvalue">Shown Value</button>
答案 1 :(得分:5)
您可以使用data-
attr
<button type="submit" name="buttonname" data-value="value2" value="Value1">value</button>
然后使用Element.getAttribute()直播DEMO
var buttom = document.querySelector("button");
var dataValue = buttom.getAttribute("data-value");
alert(dataValue);
这样您只需添加data-*
最好的部分是你可以使用
<input type="submit" name="buttonname" data-value3="value3" data-value="value2" value="Value1" />
Demo如果你不喜欢button