营销人员的Web表单 - 以编程方式提交表单数据

时间:2013-05-16 02:48:45

标签: sitecore sitecore6 web-forms-for-marketers

我目前正在确定是否在我正在开展的项目中包含营销人员的Web表单。该网站将是一个具有丰富UI的响应式设计,因此我希望能够完全控制表单的呈现,例如标签,输入字段等,而不是必须修改WFFM SitecoreSimpleFormAscx.ascx文件或相关的css文件。

目前是否有任何方法,使用C#代码,将一些表单数据提交到已在Sitecore中创建的Web Forms for Marketers表单(假设我已了解所有字段)? WFFM reference guide有一个代码段,用于访问已提交的网络表单数据,但只提交一些内容。

2 个答案:

答案 0 :(得分:2)

如果您不想深入了解表单的自定义控件,可以尝试通过响应式页面中的JavaScript对包含WFFM表单的页面执行POST。或者,您可以在页面上嵌入并隐藏wffm表单,并再次使用脚本驱动它。我认为第二种方法会更好,因为它可以让您更直接地响应验证失败。

答案 1 :(得分:0)

您可以使用以下代码将表单代码提交到WFFM数据库,它将在该表单的报告页面中无缝显示:

假设您在此类列表中填写了填写的字段列表:

public class WffmField
    {
        public string FieldName { get; set; }
        public string FieldGuid { get; set; }
        public string FieldValue { get; set; }
    }

现场guid将是sitecore的指南: enter image description here

然后您可以保存到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);

希望这有帮助!