我添加了一个字段到一个节点使用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 Hooks(hook_form_alter)
- 2. Drupal 7.0,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. 保存数据
- 9. 保存数据
- 10. 保存数据
- 11. 。保存数据
- 12. 将数据从Drupal保存到本地系统文件
- 13. Drupal 7将表单保存到数据库中
- 14. Drupal的形式API保存到数据库
- 15. 所有表保存在Drupal
- 16. 在Drupal中保留数据完整性:
- 17. Drupal 8 hook_form_alter未在搜索块窗体中调用
- 18. Drupal hook_form_alter匿名用户看不到字段
- 19. 使用hook_form_alter的文件附件扩展Drupal file_validate_extensions
- 20. 保存数据后
- 21. Vuejs保存数据
- 22. ViewModel保存数据
- 23. 保存数据iphone
- 24. 保存数据(OnSaveInstanceState)
- 25. 数据保存在内存
- 26. 保存()返回NULL,不保存数据
- 27. JPA-Hibernate保存未保存的数据
- 28. 保存自定义帖子元数据,不保存数据
- 29. Drupal在哪里存储NODE数据?
- 30. hook_form_alter - 模块或template.php