我需要从Java代码中调用Google Apps脚本端的doPost函数。
我已经使用doGet完成了此操作,但是我需要传递很多变量,因此doGet并不是最好的选择。
这是我用于doGet的代码,它对于带有少量输入的表单非常有效,但是我需要以更大的形式实现逻辑。
我必须从一个按钮调用函数
<input type="button" onclick="get()" value="Go" class="btn">
JS:
function get() {
var SCRIPT_URL = "https://script.google.com/macros/s/key/exec";
$.getJSON(SCRIPT_URL + "?a="+ $("#a").val(),
{ method: "populate_list" },
function (data) {
alert(JSON.stringify(data));
});
};
在Google Apps脚本中,这是我拥有的doPost函数
function doPost(e) {
if (e.parameter.method=="populate_list") {
SpreadsheetApp.getActiveSheet().getRange('F2').setValue(e.parameter.a);
}
}
我需要的是按钮调用的功能get()的等效功能,但对于doPost,所以它调用了我在GAS中拥有的doPost函数
最佳答案
jQuery $ .post()为此工作,我从表单获取值并将其传递给脚本url。
JS:
var v_name = $("#name").val();
$.post("https://script.google.com/macros/s/KEY/exec",
{
index: selectedUser,
name: v_name,
variableName: variableValue
},
function (data) {
console.log(data.name);
}, 'json');
Google脚本
function doPost(e) {
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange('B'+e.parameter.index + "").setValue(e.parameter.name);
}