2014-04-18 73 views
0

我已經創建了一個應用程序,用於收集來自各種用戶的表單回覆。我在回覆電子表格中收到了電子郵件ID的回覆。由於我不想在電子表格中存儲數據,因此我正在通過響應讀取數據。我正面臨一些挑戰,請指導。

查詢1.同時使用onFormSubmit(e)中,我無法讀取提交形式,給定的代碼被返回null 變種形式= FormApp.getActiveForm(); Logger.log('usename:'+ form.getId());錯誤「無法調用null方法的getId」。雖然如果我硬編碼的值formid var form = FormApp.openById('<>'); 那麼它工作正常,我也可以閱讀迴應。我如何獲得多個用戶的表單回覆。



查詢2.getRespondentEmail();
不適用於我的情況。即使我使用表單ID <>並嘗試從我在表單提交時捕獲的響應中獲取電子郵件ID「form.setCollectEmail(true);」我嘗試了onFormSubmit(e)函數中的以下代碼,但dint得到結果:

var formResponse = form.response;
Logger.log('用戶的電子郵件地址:'+ formResponses.getRespondentEmail());

和另一種方式:
Logger.log('用戶的電子郵件ID:'+ form.getRespondentEmail()); Logger.log('用戶的電子郵件地址:'+ e.values [1]);以及
沒有什麼適合我的。請指導。如何從回覆中獲取/讀取電子郵件ID



感謝提前。

+0

如果您的應用程序腳本是在窗體本身中創建的,那麼只有FormApp.getActiveForm();會給你表格。 鑑於如果你是應用程序腳本在驅動器然後FormApp.getActiveForm();將返回null。 檢查這是你的第一個查詢。你可以發佈你的第二個查詢的代碼嗎? – Bharathi

+0

ohk,我的不好,我從電子表格動態地創建表單,所以我如何捕獲提交表單的表單ID? – usadhikari

+0

用於捕獲電子郵件ID的相關代碼: function onFormSubmit(e){ var form = FormApp.openById('1ZQkN76JbZEpnWG9D0GQZfSWD8YHlP5nbuqIcfJpC9a0'); //閱讀回覆 \t Logger.log('email:'+ form.getRespondentEmail()); Logger.log('email:'+ formResponses.getRespondentEmail()); Logger.log('email:'+ e.values [0]); } – usadhikari

回答

1

查詢1:希望在我的評論中清楚。

查詢2:

遺憾地說。我完全不理解你的第二個查詢問題。

但是根據您的要求我建議這個代碼。

如果你已經創造了你應該知道的形式ID的形式(假設)

所以試試這個代碼。

var form=FormApp.openById('your form id here'); 
//this returns your form which you created// 

var responses=form.getResponses(); 
/// this will give you all responses of your form as an array//// 

///iterate the array to get respondent email id/// 

for(var i = 0; i < responses.length; i++){ 
    Logger.log(responses[i].getRespondentEmail()); 
} 

希望這會幫助你。

快樂編碼!

+0

明白了,問題出現在閱讀回覆時。 @ formResponses.getRespondentEmail()。感謝您的解決方案。現在它工作正常。 – usadhikari

+0

嗨Bharathi,我很清楚您的查詢1的意見,我有一個電子表格中的代碼來爲多個用戶生成動態表單,但我無法追蹤formID,請你指導我進一步,我怎麼能得到formId在onFormSubmit()? – usadhikari

相關問題