我知道有可能使用一些函数来改变drupal核心表单:hook_form_alter()
。 我们可以在用Webform模块创建的Drupal表单中使用它吗?drupal表单修改网络表单
回答
我不太清楚你在做什么,但是因为webform模块创建了一个内容类型--webform - 你可以纯粹通过管理界面改变由webform创建的表单 - 添加新的输入和输入类型,指定它们是否它们是否需要等
例如,“联系我们”表单可以有任何你想要的输入 - 不像核心Drupal联系表单,它只有一个电子邮件地址和一个textarea。
是的,如果由于某种原因您需要更改网络表单,而您无法通过编辑网络表单节点进行更改,那么您也可以使用hook_form_alter更改表单,因为网络表单是由形式API。也就是说,在webform的某些角落里做点什么 - 它带有许多用于动态填充或更改表单部分的选项。
您可以使用hook_form_alter()
,通过$form['submitted']
访问元素。
你可以做到这一点,
你只需要节点的ID,然后使用id像 hook_form_ <FORMID> _alter()
的FORMID产生是webform_client_form_ <NODEID>
其中NODEID是节点的ID
所以如果你有一个名为mymodule的模块和一个id为44的节点,那么h的一个WebForm
function mymodule_form_webform_client_form_44_alter(&$form, &$form_state) {
// code here;
}
在Drupal的7,您可以使用hook_form_alter()
或hook_form_<formid>_alter()
,无论你喜欢哪种。只要确保你获得了正确的命名和参数。但是Drupal 6仅支持hook_form_alter()
。
当你创建这些函数时,还要记住Drupal在刷新缓存之前可能不会总是选择它们。
另一个需要注意的重要事项是,如果您想更改网络表单字段,则必须在$form['submitted']
中进行更改。我犯了错误,最初试图编辑$form['#node']->webform['components']
,这没有效果。
更多信息可以在这里找到:http://drupal.org/node/1558246
希望能有所帮助。
- 1. drupal ajax表单更改
- 2. 如何从Drupal 7中的现有表单复制网络表单
- 3. 复杂网络表单(iPhone)
- 4. AntiForgery Asp.net网络表单
- 5. Html表单提交修改
- 6. 修改表格单元格
- 7. 如何自动提交Drupal网络表单?
- 8. Drupal的 - 网络表单元素主题化
- 9. Drupal - 环境特定的网络表单元素与div
- 10. Drupal 7:网络表单中的节点字段
- 11. Drupal的:两个或更多个网络表单之间
- 12. 修改Drupal表单字段 - [#weight]不被尊重的数组?
- 13. 在Drupal中修改节点提交表单标签
- 14. 的Drupal 7:网络表单结果>提交:如何添加或修改此处列
- 15. Drupal的子表单
- 16. drupal验证表单
- 17. 更改Drupal表单中字段的值
- 18. Drupal 7:修改菜单HTML输出?
- 19. sitecore:营销人员的网络表单,一个表单,两页
- 20. Django的模型表单集 - 修改表单标签,默认
- 21. 将网络表单推送到vTiger
- 22. 如何测试网络表单?
- 23. 设计/分割挂在网络表单
- 24. 从网络表单触发WSO2 BPEL
- 25. 网络表单不会正确回复
- 26. 在gridview中寻呼网络表单
- 27. 网络表格的Drupal节点模板
- 28. 修改表单输入字段
- 29. 用javascript修改表单动作
- 30. symfony ajax表单动态修改
我想在php中捕获数据,并用 – Mamadou 2011-02-24 14:45:32
执行watever不太确定。我认为webforms可以添加到任何节点类型。 – HerrSerker 2011-10-21 11:46:18