【问题标题】:Form with multiple submit option. PHP具有多个提交选项的表单。 PHP
【发布时间】:2012-01-29 23:13:12
【问题描述】:

我有一个带有以下代码的 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 页面。

感谢任何帮助!

【问题讨论】:

    标签: php html forms options


    【解决方案1】:

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

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

    值得注意的是,沿着 JavaScript 之路,您会使表单对禁用 JavaScript 的任何人都无法使用。

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

    【讨论】:

    • 我想要两个选项,将数据提交到两个不同的表单。
    • @gthmgeeky 我不确定我是否理解。你说的选项是什么意思?您想同时发布两个表单,还是希望某个输入元素成为两个表单的一部分,或者您的意思是什么?
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      【解决方案4】:

      不确定我是否正确理解了这个问题,但您可以使用 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 部分,但它应该可以正常工作。尝试对此进行试验。 :)

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

      【讨论】:

      • 在 action="dummy.php" 我需要根据用户选择的选项执行不同的 php 脚本。
      • 这就是 jQuery sn-p 所做的。将表单的action 参数与所选单选按钮或“选项”的value 参数进行切换,就像您所说的那样。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-20
      • 2016-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 2018-04-08
      相关资源
      最近更新 更多