2014-05-07 241 views
1

我期待在我的應用程序中創建一個UI表單部分,它將動態添加刪除UiApp表單元素。我試圖使用應用腳本中的示例教程hereGoogle Apps腳本 - 動態添加刪除UiApp表單元素

就執行添加刪除元素而言,此示例效果很好,但當使用提交按鈕捕獲值時,它會以JSON.stringify格式提交。當我只想捕獲將被添加到HTML電子郵件的文本或字符串格式的值。

如果有辦法將JSON.stringify轉換爲文本,字符串或僅以格式獲取值,我將繼續使用此示例。

如果不是,我想知道下列Javascript HTML代碼是否可以轉換成GAS代碼,並且能夠捕獲HTML電子郵件模板中每個條目的值以便在MailApp中使用。

http://jsfiddle.net/g59K7/

任何建議,實例或調整碼,將不勝感激。

預先感謝您

+0

我不明白。您是否使用UiApp?在UiApp上沒有客戶端代碼給你'stringify'什麼的。另外,如果您想使用HTML代碼,請使用[HtmlService](https://developers.google.com/apps-script/guides/html/)而不是UiApp。 –

回答

1

如果你不想要的結果是在一個JSON對象,那麼你就可以調整_processSubmittedData(E)的功能。現在他已經把所有東西都寫入了一個Object,這很好。所有你需要做的是有辦法解析它:

function _processSubmittedData(e){ 
    var result = {}; 
    result.groupName = e.parameter.groupName; 
    var numMembers = parseInt(e.parameter.table_tag); 
    result.members = []; 
    //Member info array 
    for(var i=1; i<=numMembers; i++){ 
     var member = {}; 
     member.firstName = e.parameter['fName'+i]; 
     member.lastName = e.parameter['lName'+i]; 
     member.dateOfBirth = e.parameter['dob'+i]; 
     member.note = e.parameter['note'+i]; 
     result.members.push(member); 
    } 

    var htmlBody = 'Group Name: ' + result.groupName; 
    for(var a in result.members) { 
    var member = result.members[a]; 
    var date = member.dateOfBirth; 
    var last = member.lastName; 
    var first = member.firstName; 
    var note = member.note; 

    htmlBody += first + ' ' + last + ' was born on ' + date + ' and has this note: ' + note; 
    } 

    MailApp.sendEmail('[email protected]',"Test Subject Line", "", {htmlBody: htmlBody}); 
    } 
+0

你好斯坦,非常感謝你的幫助。當我將調整後的代碼添加到主表單代碼時,我遇到了一個問題。我收到未定義的值。我有兩個代碼的測試電子表格。在腳本編輯器中,您將看到工作代碼和未工作代碼 - 未定義地址。可以看到我做錯了什麼,或者如果我把代碼放在錯誤的地方。 [鏈接] https://docs.google.com/spreadsheets/d/1adXbsUp2T0DroWhern1oU4oaKszO37X7spBKiImYC8Y/edit#gid=1138046975 – WallyG