【问题标题】:Web Forms for Marketers - Submit form data programmatically面向营销人员的 Web 表单 - 以编程方式提交表单数据
【发布时间】:2013-05-16 02:48:45
【问题描述】:

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

目前是否有任何方法可以使用 C# 代码将一些表单数据提交到已在 Sitecore 中创建的面向营销人员的 Web 表单表单(假设我了解所有字段)? WFFM reference guide 有一个代码 sn-p 用于访问已提交的 Web 表单数据,但没有用于仅提交一些数据。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用以下代码向 WFFM DB 提交表单代码,它会无缝地显示在该表单的报告页面中:

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

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

      字段 guid 将是来自 sitecore 的 guid:

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

      希望这会有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多