具有多个提交选项的表单。 PHP

时间:2011-12-29 15:07:39

标签: php html forms options

我有一个HTML表单页面,其中包含以下代码:

<form action="chainresult.php" method="post" enctype="multipart/form-data" />
      <input type="hidden" name="MAX_FILE_SIZE" value="3145728"/>
      <input type="file" name="userfile" id="userfile" size="30" />
      <input type="submit" value="GET SEQUENCE" />
</form>

<form action="helix_info.php" method="post" enctype="multipart/form-data" />
      <input type="hidden" name="MAX_FILE_SIZE" value="3145728"/>
      <input type="file" name="userfile" id="userfile" size="30" />
      <input type="submit" value="GET HELIX INFO" />
 </form>

我的页面有两个浏览选项和两个提交选项,可以使用2个php页面。我想只有一个浏览选项,有两个选项,根据用户点击的内容将用户带到2个不同的php页面。

感谢任何帮助!

4 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了您的问题,但如果您希望能够将数据发布到两个不同的URL,使用两个不同的提交按钮,则使用两种不同的表单是使用纯HTML执行此操作的唯一方法。

但是,可以使用JavaScript。在这种情况下,您可以将两个表单混合在一起,在发送任何信息之前评估输入,并根据输入将数据发布到不同的URL,使用AJAX。

值得注意的是,沿着JavaScript路走下去,你会让那些禁用JavaScript的人无法使用该表单。

我可能会建议您将其设为单个表单,将其指向可以处理任何一种情况的URL。因此,您始终将数据发布到同一个URL,服务器端代码必须评估输入并决定如何处理它。在这种情况下,您不会消除没有激活JavaScript的用户。

答案 1 :(得分:0)

您需要将两个表单合并为一个表单(您甚至不需要表单标记),使用JavaScript或jQuery捕获提交按钮单击,根据您的验证规则评估输入值表单提交,然后将值发布到表单,可能通过ajax。

答案 2 :(得分:0)

您可以提交多个表单,但必须使用Javascript。没有太多的汗水和泪水,jQuery应该是可行的。有点像...

$("#my-submit-button").click(function(){
   $("#first-form").submit();
   $("#second-form").submit();
})

答案 3 :(得分:0)

不确定我是否理解了问题,但您可以使用jQuery更改表单的action属性,具体取决于用户选择的内容。以下几行:

<form id="myform" action="dummy.php" method="post" enctype="multipart/form-data" />
      <input type="hidden" name="MAX_FILE_SIZE" value="3145728"/>
      <input type="file" name="userfile" id="userfile" size="30" />
      <input type="radio" name="formtype" value="uploadscript1.php" /> Option 1<br>
      <input type="radio" name="formtype" value="uploadscript2.php" /> Option 2<br>
      <input type="submit" value="GET HELIX INFO" />
 </form>

在jQuery中:

$('input[name="formtype"]').change(function(){
    $('#myform').attr('action', $(this).attr('value'));
});

我不确定jQuery部分,但它应该可以正常工作。尝试尝试一下。 :)

使用此方法,您应该能够将相同的数据发送到两种不同的表单。