如何使用Google App Script从html表单中获取数据

时间:2018-03-01 11:57:56

标签: google-apps-script

如何在Google应用脚本中传递/获取html表单中的数据? 我尝试了很多次,但仍然无法获得正确的代码。我希望有人可以帮我解决这个问题。

Code.gs

function doGet(e) {
    return HtmlService.createHtmlOutputFromFile('Index');
}

function getValuesFromForm(form) {
    var firstname = form.lastname,
        lastname = form.firstname,
        ss = SpreadsheetApp.openById('1XvrQFzVTlCqtB6HGggeGKraaLrd_8wdw6rAGVNVxYC0');
    var sheet = ss.getSheets()[0];
    sheet.appendRow([firstname, lastname]);
}

的index.html

<form>
  First name: <input id="firstname" name="firstName" type="text" />

  Last name: <input id="lastname" name="lastName" type="text" />

  <input onclick="google.script.run.getValuesFromForm(this.form)" type="button" value="Add Row" />
</form>

enter image description here

1 个答案:

答案 0 :(得分:1)

两件事:

  1. 我们必须通过父母,以便我们可以访问它的孩子。 this.form将不发送任何内容[我猜]因为这个[输入按钮]没有表格子。相反,您应该发送表单[使用parentNode或getElement()]

  2. 我们必须使用字段name而不是id [目前您正在使用ID,交叉检查,请参阅大写字母]

  3. 所以你有两个选择:

    1. 更改字段名称以匹配脚本中的字段
    2. &#13;
      &#13;
      <form id='myForm'>
          First name: <input id="firstname" name="firstname" type="text" /> Last name: <input id="lastname" name="lastname" type="text" />
          <input onclick="google.script.run.getValuesFromForm(document.getElementById('myForm'))" type="button" value="Add Row" />
      </form>
      &#13;
      &#13;
      &#13;

      1. 更改脚本中使用的名称以匹配表单中的名称
      2. form.firstName [而不是form.lastNamecode.gs]

        的脚本中使用form.firstnameform.lastname