我继承了一个复杂的Webform,其中包含数百个提交。组件之一是文本字段,用于捕获表单提交者的电子邮件地址。由于某种原因,这是一个文本字段,而不是一个电子邮件字段,这使我无法使用该电子邮件地址发送确认电子邮件。
如果要删除文本字段电子邮件组件,所有数据将如何处理?我假设它将被删除。
有什么办法可以在保留数据的同时更改表单组件的类型?
更新:我正在使用Drupal 7和Webform 3.19
我继承了一个复杂的Webform,其中包含数百个提交。组件之一是文本字段,用于捕获表单提交者的电子邮件地址。由于某种原因,这是一个文本字段,而不是一个电子邮件字段,这使我无法使用该电子邮件地址发送确认电子邮件。
如果要删除文本字段电子邮件组件,所有数据将如何处理?我假设它将被删除。
有什么办法可以在保留数据的同时更改表单组件的类型?
更新:我正在使用Drupal 7和Webform 3.19
Answers:
删除Webform组件时,将删除该组件的提交数据。保留表单其他组件的数据。我已经通过查询Webform 7.x-3.23上的webform_submitted_data MySQL表确认了这些。
正如用户calebtr所指出的那样,每个组件都有一个“专用”复选框,可以用作ersatz删除但保存数据功能,但具有读取结果特权的登录用户仍会看到该组件在表格(不仅在结果中)。这些字段可以使用样式表或自定义模板隐藏,可能是在将它们组合为私有字段集之后。
Webform UI不允许更改组件类型。我看到此信息存储在webform_component.fieldset中,因此您可以在那里进行修改。您还希望更新“额外”列中的组件设置。
如果您删除的字段对于内容类型而言是唯一的,则该字段将从数据库中删除(包括它的数据)。如果您从中删除共享字段,则该字段将从该内容类型中删除,以及该内容类型所独有的数据。
如果发现需要与字段保持关联的数据,但是需要用于数据的其他类型的字段,则需要提前计划。
一个好的解决方案可能是使用Feeds模块(导入到字段)和Views Data Export Module(视图数据导出模块)(将字段导出到电子表格)。该过程将是:
设置一个列出所有文本字段值并显示要迁移的所有字段的视图。然后导出数据并选择CSV格式。
使用提要将数据导入D7。只需将每个导出的字段映射到您的首选字段即可。
在另一方面,你可能需要阅读本教程太