2

我有一个带有两个按钮的表单,我还有一个参数,它根据按下的按钮取 2 个不同的值。如果我写这样的东西

<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>

参数“method”总是以值“saveXml”传递给服务器。

而且由于任务的其他条件,我不能将这些按钮放在 2 种单独的形式中。我怎么解决这个问题?

4

3 回答 3

0
  1. 将按钮更改为超链接。
  2. 使超链接调用不同的 javascript 函数。
  3. 特定的 JS 函数将使用您指定的值提交表单。

除此之外 - 您只能放置一个“隐藏”输入并使用 Javascript 动态更改其值,具体取决于单击了哪个按钮。您还必须在 javascript 中检测到这一点。在这种情况下,提交也是用 JS 完成的,而不是通过按钮单击。

于 2012-08-23T13:29:49.527 回答
0

在您的表单发布值中,如果用户单击save按钮,它将具有一个字段,save其值为SAVE

如果用户单击该back按钮,它将有一个值BACK

您不需要隐藏字段来执行此操作。

单击提交按钮时,浏览器只会将用户单击的输入值发布到服务器。(如果点击save,则back不会发布,反之亦然)

于 2012-08-23T13:32:13.380 回答
-1

@Matthew 给出了正确的建议。这是示例 php 代码(将其视为 PSEUDOCODE,只是为了理解逻辑):

[编辑以反映逻辑,而不是带有 javascript history.back(-1) 的 PHP 示例]

if( $_POST['save'] ) :
    // your saveXml case
    ...
else if ($_POST['back']) :
    // your back case
    ...

只有当您按下“保存”按钮时才会处理保存(将保存 XML),并且只有当您按下“返回”按钮时才会处理返回。没有javascript,没有隐藏字段。

于 2012-08-23T13:46:18.103 回答