Я унаследовал сложную веб-форму с несколькими сотнями заявок. Одним из компонентов было текстовое поле, используемое для захвата адреса электронной почты отправителя формы. По какой-то причине это текстовое поле, а не поле электронной почты, которое не позволяет мне использовать адрес электронной почты для отправки подтверждения по электронной почте.
Если бы я удалил компонент электронной почты текстового поля, что случилось бы со всеми данными? Я предполагаю, что это будет стерто.
Есть ли способ изменить тип компонента формы при сохранении данных?
Обновление: я использую Drupal 7 и Webform 3.19
Ответы:
При удалении компонента Webform отправленные данные для этого компонента удаляются. Данные для других компонентов формы сохраняются. Я подтвердил это, запросив таблицу MySQL webform_submitted_data в Webform 7.x-3.23.
Как указал пользователь calebtr, для каждого компонента есть флажок «Приватный», который можно использовать как функцию удаления, но сохранения данных, за исключением того, что вошедшие в систему пользователи с правом чтения результатов по-прежнему будут видеть компонент на форма (не только в результатах). Эти поля могут быть скрыты с использованием таблицы стилей или пользовательского шаблона, возможно, после преобразования их в закрытый набор полей.
Пользовательский интерфейс Webform не позволяет изменять тип компонента. Я вижу эту информацию, хранящуюся в webform_component.fieldset, так что вы, вероятно, можете изменить ее там. Вы также хотели бы обновить настройки компонента в столбце «extra».
источник
Подумайте, действительно ли вам нужна структура данных или нет, или вам просто нужно сохранить данные. Используете ли вы данные веб-формы в представлении? Кто-нибудь зависит от автоматизированного «Анализа», который предоставляет Webform?
Если вам нужно только отправить подтверждение по электронной почте для новых заявок, добавьте новое поле с такой же маркировкой, другим ключом и правильным типом, а затем подавьте исходное поле, отметив его как «Личное» в настройках поля.
Частные поля показываются пользователям, которые имеют доступ к результатам, поэтому это может не работать в вашем случае использования.
В качестве альтернативы используйте модуль Node Clone для клонирования веб-формы и изменения этого поля без потери данных или повторного ввода всех ключей.
источник
Если поле, которое вы удаляете, является уникальным для типа контента, то это поле исчезает из базы данных (которая включает в себя его данные). Если вы удаляете общее поле из, оно удаляется из этого типа контента вместе с данными, уникальными для данного типа контента.
Если вы обнаружите, что вам нужно сохранить данные, связанные с полем, но вам нужен другой тип поля для данных, вам нужно планировать заранее.
Хорошим решением может быть использование модуля Feeds (для импорта в поля) и модуля экспорта данных Views (для экспорта полей в электронную таблицу). Процедура будет:
Настройте представление, в котором перечислены все значения текстового поля и отображены все поля, которые вы хотите перенести. Затем экспортируйте данные и выберите формат CSV.
Используйте каналы для импорта данных в D7. Просто сопоставьте каждое экспортируемое поле с вашим предпочтительным полем.
с другой стороны, вы можете прочитать этот урок тоже
источник