HTML - 形成最佳实践

时间:2012-07-20 07:35:48

标签: php html forms

拥有更多提交按钮的表单是否可以? 我的意思是我有一个包含一些输入字段和表格的表单 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和“country”中的所选项目。 附:我想知道它是否是最佳的以及其他程序员如何处理这些东西

4 个答案:

答案 0 :(得分:2)

主要问题是:当用户在文本输入字段中按Enter键时会发生什么?在大多数浏览器中,表单数据都会被提交,但这是否与按下其中一个按钮相对应,哪一个?参见例如问题Multiple submit buttons in an HTML form

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

答案 1 :(得分:1)

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

查看this

答案 2 :(得分: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   
?>

答案 3 :(得分:1)

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

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