我有一个带有两个按钮的表单,我还有一个参数,根据按下的按钮,它有两个不同的值。 如果我写这样的东西
<form>
<input type="hidden" name="method" value="saveXml"/>
<input type="submit" name="save" value="SAVE"/>
<input type="hidden" name="method" value="cancelled"/>
<input type="submit" name="back" value="BACK"/>
</form>
参数&#34;方法&#34;始终以值&#34; saveXml&#34;传递给服务器。
由于任务的其他条件,我不能将这些按钮分成两种形式。我该如何解决这个问题?
答案 0 :(得分:0)
除此之外 - 您只能放置一个“隐藏”输入并使用Javascript动态更改其值,具体取决于单击了哪个按钮。这你还必须在javascript中检测。在这种情况下,提交也是通过JS完成的,而不是通过按钮点击。
答案 1 :(得分:0)
在表单发布值中,如果用户点击save
按钮,则其字段将显示save
且值为SAVE
。
如果用户点击back
按钮,则其值为BACK
。
您不需要隐藏字段来执行此操作。
单击提交按钮时,浏览器将仅将用户单击的输入值发布到服务器。 (如果点击save
,则不会发布back
,反之亦然)
答案 2 :(得分:-1)
@Matthew给出了正确的建议。 这是示例php代码(将其视为PSEUDOCODE,只是为了理解逻辑):
[编辑以反映逻辑,而不是使用javascript history.back(-1)的PHP示例]
if( $_POST['save'] ) :
// your saveXml case
...
else if ($_POST['back']) :
// your back case
...
这样,只有按“保存”按钮才会处理保存(XML将被保存),只有按“返回”按钮才能处理后退。没有javascript,没有隐藏的字段。