一个表单两个提交按钮

时间:2012-07-27 20:53:09

标签: php forms

我在网站上有两个类似的表单,我想将它们合并为一个带有两个提交按钮的表单。他们使用大部分相同的数据。

第一种形式使用GET将数据发送到另一台服务器。第二个表单通过电子邮件发送。我想强烈建议网站用户在尝试选项二之前使用选项一。

我知道如何使用javascript执行此操作,但不会以降级良好的方式执行此操作。有两种提交选项的其他方式吗?或者其他如何实现这一目标的想法?谢谢!

3 个答案:

答案 0 :(得分:2)

Snow Blind 提供了很好的解决方案,但您无法确定单击了哪个按钮。
按钮必须有不同的名称,不一样。

示例:

<input type="submit" name="server" value="Server" />
<input type="submit" name="email" value="Email" />

<?php

if(isset($_GET['server']))
{
    // Send to another server
}
else if(isset($_GET['email']))
{
    // Send to email
}
else die("None of buttons was clicked.");

?>

此外,如果两个部分(服务器和电子邮件)中的代码相同,则可以执行以下操作:

if(isset($_GET['server']) || isset($_GET['email']))
{
    // Do something common to both methods
    if(isset($_GET['server'])) 
    {
        // Send to server
    }
    else 
    {
        // Send to email
    }
}


<小时/>

在我看来,更好的解决方案是只提供1个提交按钮+一个下拉菜单,方法可供选择。

<select name="sendMethod">
    <option value="" disabled>Choose sending method...</option>
    <option value="server">Send to another server</option>
    <option value="email">Send to e-mail</option>
</select>

答案 1 :(得分:0)

像所有人都说使用复选框/单选按钮。 并设置使用GET作为默认选项的那个

如果您不想使用javascript,您可以随时获取值和复选框/收音机并检查用户选择

答案 2 :(得分:-1)

您可以创建两个提交按钮,并为它们提供相同的name但不同的value

<input type="submit" name="submit" value="Server">
<input type="submit" name="submit" value="Email">

然后,您可以查看$_GET['submit']$_POST['submit'](取决于form method),了解使用了哪个提交。