2013-05-11 37 views

回答

5

Drupal Form API提供了一個標準化的方法來顯示,驗證和提交表單到您的Drupal站點。它允許其他模塊與您設計的表單進行交互,並修改或添加字段以修改表單行爲(如果需要)。

通過使用表單API,您可以輸出完全包裝在類和id中的表單,您的主題可以以適合您網站的圖形設計的方式進行設計。

表單API輸出表單是安全的,這意味着它確保用戶提交的表單由您的網站生成,而不是用於將惡意數據饋送到數據庫的虛假網頁的一部分。驗證過程允許程序員清理任何數據以避免SQL注入和其他潛在的安全威脅。它還提供了一種避免多個用戶同時修改相同內容的方法。

我也認爲將表單構建爲結構化數組可以使表單設計和維護更直接。

這些只是我個人關於使用表單API的亮點。您可能想在Drupal Form API文檔中的this link處閱讀更多內容。

3

Pamatt's answer寫得很好,但由於您的問題不是非常有建設性/明確性,我試圖添加一些缺失的點。

爲什麼我們使用「drupal表單」儘管我們可以通過「HTML 表單」來做每件事情?

有沒有這樣的事情「Drupal形式」。他們仍然使用相同的<input>,<select>等標籤,一切仍然是HTML。但模塊有機會改變形式沒有搞亂HTML。

這是一個正常的Drupal形式:

$form['text'] = array(
    '#type' => 'textfield', 
    '#maxlength' => 120, 
    '#title' => t('Name'), 
); 

這僅僅是一個PHP數組,如果你要修改的最大長度,你可以很容易地做到這一點。如果是<input name="text" maxlength="120" />?如果一個特定的模塊想要改變它,你必須使用某種正則表達式來做到這一點。

此外,由Drupal Form API生成的表單可以有額外的**驗證函數以及提交函數。

**額外:*根據上述示例,您不需要驗證文本長度不超過120.有人可以編輯HTML併爲此字段發送200個字符,但表單API可以拒絕它。 Form API可以進行基本驗證,例如確保填寫必填字段,不超過maxlength,請求是CSRF安全的,選擇列表的值實際上在允許列表中,等等。

如果您堅持需要使用原始的HTML表單,你必須添加你自己的表單標記,緩存,數據驗證器等。完成後,你會發現它已經完成並給出名稱「Form API」。

相關問題