2014-02-26 71 views
3

我有一個帶有姓名和電子郵件地址的表單,用戶可以填寫。通過簡單的HTML表單向Google電子表格添加基本數據

enter image description here

現在,如果用戶點擊提交按鈕,我想將數據發送到電子表格中最好不使用一些服務器端魔術..

這是我的方式:

<form method="post" action="SOME-ACTION-HERE" accept-charset="UTF-8"> 
    <input type="text" name="newletter_name" placeholder="Name"> 
    <input type="text" name="newletter_email" placeholder="Email"> 
    <input type="submit" value="Subscribe" /> 
</form> 

有沒有辦法用我自己的自定義HTML表單來做到這一點。我知道你可以爲一個給定的電子表格創建一個Google表單,但我想用它來做某種小部件。

回答

10

是的,這是可能的。使用一些服務器端魔術或不。
但是,重要的是要知道我們正在討論的女巫服務器,你的服務器或谷歌服務器,因爲最終它將服務器端存儲在電子表格應用程序:)
我認爲這是可能的做到這一點完整的JS(但它會非常痛苦)。
,我建議你在這裏是要傳達一個谷歌的解決方案應用腳本將處理服務器端魔術在一個非常簡單的方法: 演示:

在你的網站上的HTML代碼:

<form id="form" method="get" action="https://script.google.com/macros/s/AKfycbxeKTVlTkqSGLIRphBrzACjuWlfmejbPIG7NqBxx-7Us7lnqLw/exec" accept-charset="UTF-8"> 
    <input type="text" name="newletter_name" placeholder="Name"> 
    <input type="text" name="newletter_email" placeholder="Email"> 
    <input type="submit" value="Subscribe"/> 
</form> 

這裏的谷歌Apps腳本:

function doGet(e){ 
    var vals=[]; 
    vals.push(new Date()); 
    for(var i in e.parameter){ 
    vals.push(e.parameter[i]); 
    } 
    SpreadsheetApp.openById("0Ao02g19G1-G-dElQQW92ekZWa0lGRGREYUpHRWQwTVE").appendRow(vals); 
    return ContentService.createTextOutput("added"); 
} 

如果你想看到的結果,你可以看看到電子表格here

你需要知道的是:
谷歌應用程序腳本在這裏位於電子表格中(但這不是必須的,因爲在我用他的id調用它的腳本中)。
爲了運行該腳本,您必須發佈它並允許任何人運行它。當您執行此操作時,您將獲得需要放入HTML代碼的已發佈網址。這裏它:https://script.google.com/macros/s/AKfycbxeKTVlTkqSGLIRphBrzACjuWlfmejbPIG7NqBxx-7Us7lnqLw/exec

希望這是一個滿意的答案給你。

+0

是的,這太神奇了。我不知道這個腳本外觀。優秀的答案。謝謝 – Besi

+0

這是否仍然有效? – Neil

+0

嗨,這種方式仍然有效嗎? –

相關問題