2012-07-20 84 views
0

可以使用更多的提交按鈕來創建表單嗎? 我的意思是我有一個包含一些輸入字段,桌子和 3個按鈕的形式,將不同格式的HTML - 表單最佳實踐

<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」的選定項目。 P.S.我想知道它是否最優以及其他程序員如何處理這些東西

回答

1

我不認爲這是一個壞主意。但是,所有提交按鈕必須具有相同的名稱屬性。

退房this

+0

它的工作,即使我不使用相同的「名稱」屬性,但我認爲這種方式更合適 – NiCU 2012-07-20 07:49:30

+0

可以這樣做,但我認爲「格式」的選擇是一個更好的主意。 – NoZip 2012-07-20 09:03:50

1

是的,你可以有更多的一種形式提交按鈕。由於您使用的是PHP來處理submited表單,因此我不會像@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 
?> 
+0

對一個名稱和不同值使用不同名稱有什麼好處? – Dpolehonski 2012-07-20 07:54:59

+1

@Dpolehonski:我不知道其他編程語言有什麼好處(如果有的話),但我指的是PHP語言。如果你不給他們不同的'name'屬性,你會如何檢查某個按鈕是否在PHP中被點擊? – Nikola 2012-07-20 07:58:29

+0

你比較提交的「名稱」的值如「if」bsubmit「==」opt1「//做某些事情如果」bsubmit「==」opt2「//做別的事情' – NiCU 2012-07-20 08:16:43

1

我剛剛完成了一個系統,您可以在其中更新數據記錄,我使用的功能之一是使用多個提交以允許用戶使用不同選項「更新」更新。例如'主動','等待','禁用'。它保存了多個選項的下拉框並保持系統直觀。

具有不同值的多個提交按鈕允許您提交具有多個值之一的提交字段的表單,並且可以改變用戶界面。另外,它的有效HTML。

2

主要問題是:當用戶在文本輸入字段中按Enter時會發生什麼?在大多數瀏覽器上,表單數據被提交,但這是否與按下其中一個按鈕以及哪一個相對應?見例如問題Multiple submit buttons in an HTML form

每個表單只有一個提交按鈕是最安全的。 (然而,爲了用戶方便,將具有相同功能的提交按鈕添加到長表單中是安全的)。這意味着用戶將通過使用單選按鈕或選擇菜單在可選項(例如,輸出格式)之間進行選擇,而不是通過按鈕之間的選擇。雖然這並不總是實際可行的。