2013-04-10 207 views
0

我正在創建一個可以將結果轉儲到Google電子表格中的Google應用程序腳本。表單根據需要隨着使用Javascript和DOM來複制id =「duplicate_me」的部分。如何避免需要變量變量?

<form method="post" action="https://script.google.com/macros/s/.../exec"> 
    <fieldset> 
    <input type="text" name="P_name"> 
    <input type="text" name="P_addr"> 
    </fieldset> 
    <fieldset id="duplicate_me"> 
    <input type="text" name="C1_name"> 
    <input type="text" name="C1_addr"> 
    </fieldset> 
    <fieldset id="first_duplicate"> 
    <input type="text" name="C2_name"> 
    <input type="text" name="C2_addr"> 
    </fieldset> 
</form> 

我需要腳本爲每組C做一個appendRow()嗎?字段和順序很重要。 IE:

function doPost(e) { 
... 
    sheet.appendRow([ e.parameter.P_name, e.parameter.P_addr, e.parameter.C1_name, e.parameter.C1_addr ]); 
    sheet.appendRow([ e.parameter.P_name, e.parameter.P_addr, e.parameter.C1_name, e.parameter.C1_addr ]); 
... 
} 

唯一的解決辦法我能想出是要在C位?一個變量,但我意識到這是一個糟糕的解決方案,難以實施。

我怎樣才能將這些變量放入一個表單中,讓我可以在循環中執行此命令,而不是手動創建任意數量的這些條目?

感謝您的想法。

--Dave

+0

什麼是「變量變量」? – 2013-04-10 17:16:20

+0

來自[php.net](http://php.net/manual/en/language.variables.variable.php):「一個變量變量接受一個變量的值並將其視爲一個變量的名稱。」 – Dave 2013-04-10 18:25:48

+0

我目前使用eval()來解決這個問題,一旦系統允許我發佈這種類型的解決方案。 – Dave 2013-04-10 19:59:49

回答

0

你的解決方案是完全正確的。

在循環中寫入e.parameter['C' + i + '_name']

+0

當我嘗試訪問e.parameter.C1_name作爲e.parameter [C1_name]時,Google返回一個錯誤:'ReferenceError:「c1_firstname」未定義。「 – Dave 2013-04-10 18:23:00

+0

@Dave:'[]'期待一個字符串。您需要使用字符串連接,正如我在答案中所示。 – SLaks 2013-04-10 19:33:04

+0

謝謝。得到它的工作。 – Dave 2013-04-24 04:10:56