多个提交按钮php不同的动作

Joe*_*ing 28 php action submit

我有一个网站,我希望有两个单独的提交按钮,其中一个将输入数据并进行一些计算,以显示在同一屏幕上.我成功地使用了这个:

<form id="form1" name="form1" method="post" onsubmit="" onreset="" action="programname.php">
<input type="submit" name="calc" value="Find Angle">
Run Code Online (Sandbox Code Playgroud)

然后我用:

if (!isset($_POST['submit'])){
Do actions, display calculations}
Run Code Online (Sandbox Code Playgroud)

现在我想要一个第二个提交按钮,它仍然可以获取他们输入的数据,但是会转到另一个地址.有一种优雅的方式来做到这一点?

Tra*_*ty3 48

您可以onclick向新的提交按钮添加一个方法,该方法将更改表单的操作,然后提交它.

<script type="text/javascript">
  function submitForm(action) {
    var form = document.getElementById('form1');
    form.action = action;
    form.submit();
  }
</script>

...

<form id="form1">
  <!-- ... -->
  <input type="button" onclick="submitForm('page1.php')" value="submit 1" />
  <input type="button" onclick="submitForm('page2.php')" value="submit 2" />
</form>
Run Code Online (Sandbox Code Playgroud)

  • @IstiaqueAhmed:听起来你正在使用`<input type ="submit">`.这个答案是使用`<input type ="button">`.有区别.使用表单中的常规按钮,当用户按Enter键时不使用任何按钮. (2认同)

Pra*_*eep 15

您可以使用button属性中的formaction ="page1.php"更改表单操作.

<form id="form1" name="form1" method="post" onsubmit="" onreset="" action="programname.php">
    <input type="submit" name="calc" value="Find Angle">

    <input type="button" type="submit" formaction="page1.php">Action 0</button>
    <input type="button" type="submit" formaction="page2.php">Action 1</button>
</form>
Run Code Online (Sandbox Code Playgroud)

注意:Internet Explorer 9和早期版本不支持按钮标记的格式属性.


Sha*_*are 8

处理多个提交按钮的最佳方法是在动作脚本中使用switch case

<form action="demo_form.php" method="get">

    Choose your favorite subject:

    <button name="subject" type="submit" value="html">HTML</button>
    <button name="subject" type="submit" value="css">CSS</button>
    <button name="subject" type="submit" value="javascript">Java Script</button>
    <button name="subject" type="submit" value="jquery">jQuery</button>

</form>
Run Code Online (Sandbox Code Playgroud)

操作/服务器端脚本:

demo_form.php

<?php

switch($_REQUEST['subject']) {

    case 'html': //action for html here
                break;

    case 'css': //action for css here
                break;

    case 'javascript': //action for javascript here
                        break;

    case 'jquery': //action for jquery here
                    break;
}

?>
Run Code Online (Sandbox Code Playgroud)

参考:W3Schools