一种形式两个提交按钮

一种形式两个提交按钮

问题描述:

我有一个网站两个类似的形式,我想合并成一个形式两个提交按钮。他们使用大部分相同的数据。一种形式两个提交按钮

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

我知道如何使用JavaScript做到这一点,但不是在降低一个很好的方式。任何其他方式有两个提交选项?或者如何完成这一点的其他想法?谢谢!

+0

你可以从字面上使用两个提交按钮,具有不同的名称或值,并根据与您定义的按钮相匹配的$ _POST变量检查您想要执行的操作。 – 2012-07-27 20:55:44

+1

为什么不只有一个提交按钮,然后有一些单选按钮供用户选择?然后在服务器端处理它。两个提交按钮可能会让访问者感到困惑。 – j08691 2012-07-27 20:55:57

+0

很多人都建议在表单中使用下拉/收音机,所以我想我应该提供更多的细节。表格是一个图书馆。第一种形式是查看图书馆是否有物品,第二种形式是给图书管理员发邮件并要求她订购。人们一直在跳过第一种形式,这就是为什么我想合并它们。我的计划是将第一个提交按钮设置为“在提交请求之前请先检查此处”。我认为尼古拉的解决方案应该为此工作? – 2012-07-28 13:48:25

您可以创建两个提交按钮,并给他们同样的name但不同value

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

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

雪盲提供了良好的解决方案,但你不能确定哪个按钮被点击。
按钮必须有不同的名称,不一样。

例子:

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

像大家说的使用复选框/单选按钮。 ,并设置使用GET作为默认选项

的一个,如果你不想使用JavaScript你总是可以得到的价值和复选框/收音机和检查用户选择