【问题标题】:Drupal save data hook_form_alterDrupal 保存数据 hook_form_alter
【发布时间】:2011-08-29 09:43:29
【问题描述】:

我使用 hook_form_alter 向节点添加了一个字段,我可以很好地看到它,但现在我当然希望在该字段中输入的数据也被保存。我该怎么做才能发生这种情况?

【问题讨论】:

    标签: drupal drupal-forms drupal-hooks


    【解决方案1】:

    当你修改表单时,你还需要在模块中添加一个表单提交处理程序;这样,在提交表单时会调用您的模块,并且您可以保存您添加的字段的值。

    如果有多个按钮,则最好将提交处理程序添加到您需要操作的特定按钮。例如,假设表单有两个提交按钮:“保存”和“删除”;如果您使用$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 中表单中有多个时单击的按钮,不应再依赖并且可能不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多