我添加了一個字段到一個節點使用hook_form_alter,我可以看到它很好,但現在我想當然也輸入在該字段中的數據也保存。我必須做什麼才能發生?Drupal保存數據hook_form_alter
回答
當您更改表單時,您還需要向模塊添加表單提交處理程序;通過這種方式,您的模塊將在提交表單時被調用,並且您可以保存您添加的字段的值。
如果有多個按鈕,那麼最好將提交處理程序添加到您需要採取行動的特定按鈕。例如,假設表單有兩個提交按鈕:「保存」和「刪除」;如果使用$form[#submit][] = "my module_form_submit";
添加提交處理程序,則即使點擊「刪除」按鈕,也會調用提交處理程序。
據報道在Form buttons can define custom #submit and #validate handlers:
所有形式可以有「#validate」以及包含驗證和提交處理程序的名單當用戶提交數據要執行「#submit」屬性。以前,如果表單包含多個提交按鈕以啓動不同的操作(例如更新記錄而不是刪除操作),則必須檢查傳入的$ form_values ['op']是否爲點擊按鈕的名稱,然後執行不同的代碼根據其價值。
現在,如果需要,可以在每個單獨的窗體按鈕上定義#validate和#submit屬性。
當使用特定按鈕提交表單時,將使用其驗證和提交處理程序,而不是默認的表單級別。如果沒有在按鈕級別指定,則將使用表單級別處理程序。
此外,The 'op' element in the form values is deprecated and should not be relied upon報告:
如上所討論的,每個按鈕可以具有 「#validate」 和與其相關聯的 「#submit」 功能。因此,應該有一個按鈕提交表單並調用正常的
$form_id_validate
和$form_id_submit
處理程序。任何需要調用不同驗證或提交功能的其他按鈕都應該有button-specific functions。還要注意,表單值中的'op'元素(對應於Drupal 5.x中有多個表單時單擊的按鈕)不應再被依賴並且可能不存在。
- 1. Drupal 7.0,hook_form_alter()
- 2. Drupal Hooks(hook_form_alter)
- 3. Drupal hook_form_alter分類管理
- 4. Drupal hook_form_alter體重控制
- 5. Drupal個人資料更改:hook_form_alter
- 6. Drupal - 在hook_form_alter中設置默認值?
- 7. 如何在Drupal中使用hook_form_alter填充url參數?
- 8. 將日期數組保存到數據庫drupal
- 9. 保存數據
- 10. 保存數據
- 11. 保存數據
- 12. 。保存數據
- 13. 保存數據
- 14. 保存數據
- 15. Drupal 8 hook_form_alter未在搜索塊窗體中調用
- 16. Drupal hook_form_alter匿名用戶看不到字段
- 17. 在drupal中使用hook_form_alter設置webform組件的值
- 18. 使用hook_form_alter的文件附件擴展Drupal file_validate_extensions
- 19. Drupal網絡表單文件上傳不保存到數據庫
- 20. drupal字段構件不保存提交的數據
- 21. Drupal 7將表單保存到數據庫中
- 22. 將數據從Drupal保存到本地系統文件
- 23. Drupal的形式API保存到數據庫
- 24. Drupal不保存字段
- 25. Drupal沒有保存更改
- 26. Drupal更改保存在git
- 27. 所有表保存在Drupal
- 28. 在Drupal中保留數據完整性:
- 29. hook_form_alter - 模塊或template.php
- 30. 差異hook_form_alter()和hook_prepare()