删除组件后,Webform数据会怎样?我可以更改组件类型吗?


9

我继承了一个复杂的Webform,其中包含数百个提交。组件之一是文本字段,用于捕获表单提交者的电子邮件地址。由于某种原因,这是一个文本字段,而不是一个电子邮件字段,这使我无法使用该电子邮件地址发送确认电子邮件。

如果要删除文本字段电子邮件组件,所有数据将如何处理?我假设它将被删除。

有什么办法可以在保留数据的同时更改表单组件的类型?

更新:我正在使用Drupal 7和Webform 3.19


您是否将Webform模块用于Drupal 6或Drupal 7?
Aiias

Drupal 7.抱歉应该提到这一点。
凯文·莫尔斯

在Drupal 7中,有一个地方可以更改数据库中的字段名称。但是我不确定该怎么做
农业协会2014年

Answers:


3

删除Webform组件时,将删除该组件的提交数据。保留表单其他组件的数据。我已经通过查询Webform 7.x-3.23上的webform_submitted_data MySQL表确认了这些。

正如用户calebtr所指出的那样,每个组件都有一个“专用”复选框,可以用作ersatz删除但保存数据功能,但具有读取结果特权的登录用户仍会看到该组件在表格(不仅在结果中)。这些字段可以使用样式表或自定义模板隐藏,可能是在将它们组合为私有字段集之后。

Webform UI不允许更改组件类型。我看到此信息存储在webform_component.fieldset中,因此您可以在那里进行修改。您还希望更新“额外”列中的组件设置。


2

考虑一下您是否真的需要完整的数据结构,还是只需要保留数据。您是否在视图中使用Webform数据?是否有人依赖Webform提供的自动“分析”?

如果您只需要发送新提交的确认电子邮件,则添加具有相同标签,不同密钥和正确类型的新字段,然后通过在字段设置中将其标记为“私人”来隐藏原始字段。

私有字段显示给有权访问结果的用户,因此这可能不适用于您的用例。

或者,使用“ 节点克隆”模块克隆Web表单并更改该字段,而不会丢失数据或不必重新键入所有内容。


0

如果您删除的字段对于内容类型而言是唯一的,则该字段将从数据库中删除(包括它的数据)。如果您从中删除共享字段,则该字段将从该内容类型中删除,以及该内容类型所独有的数据。

如果发现需要与字段保持关联的数据,但是需要用于数据的其他类型的字段,则需要提前计划。

  • 创建新字段。
  • 设计一种将数据从旧字段迁移到新字段的方法。
  • 删除旧字段。

一个好的解决方案可能是使用Feeds模块(导入到字段)和Views Data Export Module(视图数据导出模块)(将字段导出到电子表格)。该过程将是:

设置一个列出所有文本字段值并显示要迁移的所有字段的视图。然后导出数据并选择CSV格式。

使用提要将数据导入D7。只需将每个导出的字段映射到您的首选字段即可。

在另一方面,你可能需要阅读本教程


Feed将导入Webform数据吗?
mpdonadio

跟进MPD:是否将Webform组件视为字段?Webform不允许您定义自己的组件类型,除非通过自定义模块定义,所以我假设Webform组件都是共享字段?
凯文·莫尔斯

凯文(Kevin)我不确定,但我想是的,您仍然可以尝试,如果提要无法解决,您可以尝试使用webform import drupal.org/project/webform_import
Sohail
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.