0

可以有一个带有更多提交按钮的表单吗?我的意思是我有一个表单,其中包含一些输入字段、一个表格和 3 个按钮,它们将以不同的格式导出一些信息

<form id="form1" name="form1" method="post" >
    <label for="country"><strong>Countries: </strong></label><br />
    <select id="country" name="country">
      <?php
      //some php code here
      ?>
    </select> 
    <br />
    <br/>
    <label for="start_date"><strong>Start date: </strong></label><br />
    <input name="start_date" type="text" id="start_date" value="<?php if(!empty($start))echo $start; ?>" size="20" />
    <br />
    <br />  
    <label for="stop_date"><strong>Stop date: </strong></label><br />
    <input name="stop_date" type="text" id="stop_date" value="<?php if(!empty($stop)) echo $stop; ?>" size="20" />
    <br />
    <br />
        <input type="submit" name="fill_table" value="Retrieve data" /> 

    <div id="table">
      <h1>&nbsp;</h1>
      <hr />
      <h2>Sales Report</h2>
        <table class="display" id="data_table" >
          <thead>
              <tr>
                <th>Product</th>
                <th>Date</th>
                <th>Quantity</th>
              </tr>
          </thead>
          <tbody>
            <?php
                //some php code here
            ?>
          </tbody>
        </table>
        <br />
        <br />
        <br />
        <input type="submit" class="button" name="export_xls" value="Export xls" />
        <input style="margin-left:10px;" type="submit" name="export_html" value="Export html" />
  </form>

这样做可以吗,还是我应该制作 3 个表单,每个表单都有一个特定的提交按钮?每次我按下提交按钮时,我都会对输入字段感兴趣:start_date、stop_date 和“国家”中的选定项目。PS我想知道它是否是最佳的以及其他程序员将如何处理这些东西

4

4 回答 4

2

主要问题是:当用户在文本输入字段中按下 Enter 时会发生什么?在大多数浏览器上,表单数据会被提交,但这是否对应于按下其中一个按钮,哪个按钮?参见例如HTML 表单中的多个提交按钮问题。

每个表单只有一个提交按钮是最安全的。(但是,为了方便用户,将具有相同功能的提交按钮添加到长表单中是安全的。)这意味着用户将通过使用单选按钮或选择菜单在替代方案(例如,输出格式)之间做出选择,而不是通过按钮之间的选择。但是,这并不总是实用的。

于 2012-07-20T08:06:36.013 回答
1

我不认为这是一个坏主意。但是您所有的提交按钮都必须具有相同的名称属性。

看看这个

于 2012-07-20T07:42:59.930 回答
1

是的,您可以在一个表单中拥有更多提交按钮。由于您使用 php 处理提交的表单,因此我不会为每个提交按钮设置与@NoZip 建议的名称相同的名称,而是使用不同的名称,以便在代码的 php 处理部分中我会问:

<?php
    if (isset($_POST["submitButtonName1"]))
        some code here...
    else if (isset($_POST["submitButtonName2"]))
        some other code here...
    else
        code logic for no submit button clicked   
?>
于 2012-07-20T07:52:38.443 回答
1

我刚刚完成了一个系统,您可以在其中更新数据记录,我使用的功能之一是使用多次提交以允许用户使用不同的选项“标记”更新。例如“活动”、“待定”、“禁用”。它保存了一个包含多个选项的下拉框,并使系统保持直观。

具有不同值的多个提交按钮允许您提交具有多个值之一的提交字段的表单,并且可以改进用户界面。另外,它的有效 HTML。

于 2012-07-20T07:54:13.903 回答