我在一个表单中有两个提交按钮。我如何确定哪一个击中了服务器端?
当前回答
你也可以这样做(我认为如果你有N个输入,这很方便)。
<input type="submit" name="row[456]" value="something">
<input type="submit" name="row[123]" value="something">
<input type="submit" name="row[789]" value="something">
一个常见的用例是为每个按钮使用来自数据库的不同id,这样稍后您就可以知道在服务器中单击了哪一行。
在服务器端(本例为PHP),您可以将“row”读取为数组以获取id。
$_POST['row']将是一个只有一个元素的数组,形式为[id => value](例如:[' 123' => 'something'])。
所以,为了得到点击的id,你做:
$index = key($_POST['row']);
key
其他回答
<form>
<input type="submit" value="Submit to a" formaction="/submit/a">
<input type="submit" value="submit to b" formaction="/submit/b">
</form>
你可以像这样显示按钮:
<input type="submit" name="typeBtn" value="BUY">
<input type="submit" name="typeBtn" value="SELL">
然后在代码中,你可以使用:
if request.method == 'POST':
#valUnits = request.POST.get('unitsInput','')
#valPrice = request.POST.get('priceInput','')
valType = request.POST.get('typeBtn','')
(valUnits和valPrice是我从表单中提取的其他一些值,用于演示)
在HTML5中,你可以在输入字段中使用formaction和formmethod属性
<form action="/addimage" method="POST">
<button>Add image</button>
<button formaction="/home" formmethod="get">Cancel</button>
<button formaction="/logout" formmethod="post">Logout</button>
</form>
简单。你可以在不同的提交按钮上点击改变表单的动作。
在文档中试试这个。准备好:
$(".acceptOffer").click(function () {
$("form").attr("action", "/Managers/SubdomainTransactions");
});
$(".declineOffer").click(function () {
$("form").attr("action", "/Sales/SubdomainTransactions");
});
我认为您应该能够读取GET数组中的名称/值。我认为没有点击的按钮不会出现在列表中。