Веб-формы для маркетологов - Отправить данные формы программно
В настоящее время я рассматриваю вопрос о том, стоит ли включать веб-формы для маркетологов в проект, над которым я сейчас работаю. Веб-сайт будет адаптивным дизайном с богатым пользовательским интерфейсом, поэтому я хотел бы иметь полный контроль над визуализацией формы, например надписями, полями ввода и т. Д., И не хотел бы изменять WFFM. SitecoreSimpleFormAscx.ascx
файл или связанный файл CSS.
Есть ли в настоящее время какой-либо способ, используя код C#, отправить некоторые данные формы в форму Web Forms for Marketers, которая уже создана в Sitecore (при условии, что я знаю все поля)? В справочном руководстве WFFM есть фрагмент кода для доступа к уже отправленным данным веб-формы, но ничего не нужно просто отправлять.
2 ответа
Если вы не хотите копаться в пользовательских элементах управления для форм, вы можете попробовать выполнить POST для страницы, содержащей форму WFFM через JavaScript, с вашей отзывчивой страницы. В качестве альтернативы вы можете встроить и скрыть форму wffm на своей странице и снова запустить ее со скриптом. Я думаю, что второй подход был бы лучше, поскольку он позволил бы вам более непосредственно реагировать на ошибки валидации.
Вы можете отправить код формы в БД WFFM, используя следующий код, и он будет отображаться на странице отчета этой формы:
Скажем, у вас есть список полей, заполненных в списке этого класса:
public class WffmField
{
public string FieldName { get; set; }
public string FieldGuid { get; set; }
public string FieldValue { get; set; }
}
полевой гид будет гидом из sitecore:
Затем вы можете сохранить в базе данных WFFM:
// This should be populated with the data you want to send to the WFFM database
var fields = new List<WffmField>();
var wffmDatabaseFields = fields.Select(GetWFFMDatabaseField).ToList();
Sitecore.Forms.Data.DataManager.InsertForm(
formId: new Sitecore.Data.ID("<Form guid here>"),
fields: new AdaptedResultList(wffmDatabaseFields),
sessionID: AnalyticsTracker.SessionId,
data: null);
Надеюсь это поможет!