我需要从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);
}

10-08 11:16