2013-05-16 1 views
1

현재 현재 작업중인 프로젝트에 마케팅 담당자 용 웹 양식을 포함할지 여부를 결정합니다. 웹 사이트는 풍부한 UI로 반응이 좋은 디자인이 될 것이므로 폼의 렌더링을 완전히 제어하고 싶습니다. 라벨, 입력란 등을 포함 할 수 있으며 WFFM SitecoreSimpleFormAscx.ascx 파일이나 관련 CSS 파일을 수정할 필요가 없습니다.마케팅 담당자 용 Web Forms - 프로그래밍 방식으로 양식 데이터 제출

현재 C# 코드를 사용하여 양식 필드 데이터를 Sitecore에서 이미 만든 마케팅 양식 (모든 필드에 대한 지식이있는 경우)에 제출하는 방법이 있습니까? WFFM reference guide에는 이미 제출 된 웹 양식 데이터에 액세스하기위한 코드 스 니펫이 있지만 일부를 제출하기위한 코드는 없습니다.

답변

2

양식에 대한 사용자 지정 컨트롤을 조사하고 싶지 않은 경우 응답 페이지에서 JavaScript를 통해 WFFM 양식이 포함 된 페이지로 POST를 수행해보십시오. 또는 페이지에 wffm 양식을 포함시키고 숨길 수 있으며 스턴트가 스크립트로 다시 몰 수도 있습니다. 두 번째 방법은 유효성 검사 실패에보다 직접적으로 응답 할 수 있으므로 더 좋을 것이라고 생각합니다.

0

다음과 같은 코드를 사용하여 WFFM DB에 양식 코드를 제출할 수 있으며 그 양식의 보고서 페이지에 완벽하게 표시합니다 :

는이 클래스의 목록에 채워 필드의 목록을 말해봐 :

필드 GUID가 sitecore에서 GUID를 할 것
public class WffmField 
    { 
     public string FieldName { get; set; } 
     public string FieldGuid { get; set; } 
     public string FieldValue { get; set; } 
    } 

: 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); 

희망이 있습니다.