我知道如何编写一个简单的应用程序脚本(一旦发布),提供一个简单的表格(名称和消息),将值推入Google电子表格。
我的问题是:我如何从我的网站运行脚本?我可以建立一个HTML表单,当我提交表单时,它会在电子表格中写入吗?
是否有一种方法“创建”带有必须推送到电子表格中的值的链接?
我在哪里可以找到示例?
谢谢
编辑
GS CODE
我的问题是:我如何从我的网站运行脚本?我可以建立一个HTML表单,当我提交表单时,它会在电子表格中写入吗?
是否有一种方法“创建”带有必须推送到电子表格中的值的链接?
我在哪里可以找到示例?
谢谢
编辑
GS CODE
var logSheetId = "[SHEETID]"; // Drive ID of log spreadsheet
function doGet(e){
var nome;
var messaggio;
nome = e.parameter.stringaNome;
messaggio=e.parameter.stringaMessaggio;
scriviSpreadsheet(nome,messaggio);
}
function scriviSpreadsheet(nome, messaggio) {
try {
// Open the log and record the new file name, URL and name from form
var ss = SpreadsheetApp.openById(logSheetId);
var sheet = ss.getSheets()[0];
sheet.appendRow([nome, messaggio]);
// Return the new file Drive URL so it can be put in the web app output
//return file.getUrl();
} catch (error) {
return error.toString();
}
}
HTML (external site)
<form id="myForm">
<input type="text" id="nome" name="nome" placeholder="Il tuo nome"/>
<input type="text" id="messaggio" name="messaggio"/>
<input type="button" value="Submit"
onclick="scrivi()" />
</form>
<script>
function scrivi(){
var nome= document.getElementById("nome").value;
var messaggio = document.getElementById("messaggio").value;
var location = "https://script.google.com/macros/s/[MYSCRIPTID]/exec?stringaNome=" + nome + "&stringaMessaggio=" + messaggio;
window.location = location;
}
function onFailure(error) {
alert(error.message);
}
</script>
我知道这不是最好的代码,但它能够运行。
当我点击按钮时,如何避免打开任何页面?
doGet()
和doPost()
。它们都监视对已发布URL发出请求的事件。 - Alan WellsdoGet()
函数并将其发布。在“发布”菜单中,单击“部署为Web应用程序”,然后会出现一个对话框。在顶部,有一个带有已发布URL的字段。那就是您要使用的URL。有关更多信息,请参见以下内容:Stack Overflow答案链接。 - Alan Wellsaction
和method
属性。 HTML中的表单标签具有可以干扰您所需内容的“内置”行为,正如您所经历的那样。除非您正在使用与表单标签相关的功能,否则不需要它。您可以在DIV标签中格式化布局。我还会摆脱提交按钮,因为它会触发默认的表单行为,在这种情况下您不需要它。只需使用一个常规按钮来触发一个包含AJAX请求的函数即可。 - Alan Wells