0

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

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

我知道如何用 javascript 做到这一点,但不是以一种很好的方式降级。还有其他方法可以有两个提交选项吗?或如何实现这一点的其他想法?谢谢!

4

3 回答 3

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>
于 2012-07-27T21:06:05.113 回答
0

就像每个人都说使用复选框/单选按钮。并将使用 GET 设置为默认选项

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

于 2012-07-27T21:21:45.480 回答
-1

您可以创建两个提交按钮并赋予它们相同name但不同的value.

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

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

于 2012-07-27T20:57:10.457 回答