【问题标题】:submission form on google sheets谷歌表格上的提交表格
【发布时间】:2021-03-12 22:38:01
【问题描述】:

我按照本教程进行操作,https://www.youtube.com/watch?v=yZNPkcT4PKA&t=3s 尝试在 google 电子表格上创建表单。

我按照所有步骤操作,表单加载脚本工作正常,表单正文显示正常,但提交后的表单数据未按预期显示在电子表格上。

我一定是漏掉了什么,但是我把教程看了好几遍,还是搞不明白

所以这里是html代码:
(表单代码取自bootsrap)

<!doctype html>
<html lang="en">
  <head>
    <!-- Required meta tags -->
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <!-- Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">

   <div>
      <div class="form-group">
        <label for="item-name">Item Name</label>
        <input type="text" class="form-control" id="item-name">
      </div>
      <div class="form-group">
        <label for="qty-recieved">Quantity Recieved</label>
        <input type="text" class="form-control" id="qty-recieved">
        </div>
    <button type="submit" class="btn btn-primary" id="mainButton">Submit</button>
    </div>

    <!-- Optional JavaScript; choose one of the two! -->

    <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>

    <!-- Option 2: Separate Popper and Bootstrap JS -->
    <!--
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.min.js" integrity="sha384-+YQ4JLhjyBLPDQt//I+STsc9iw4uQqACwlvpslubQzn4u2UU2UFM80nGisd026JF" crossorigin="anonymous"></script>
    -->

    <script>
      function afterButtonClicked(){
      var item = document.getElementById("item-name");
      var qty = document.getElementById("qty-recieved");

      var rowData (item: item.value, qty: qty.value);
      google.script.run.addNewRow(rowData);
      }

      document.getElementById("mainButton").addEventListener("click",addRow);
    </script>
  </body>
</html>

addNewRow(rowData) 脚本:(在单独的脚本文件中) 我确实确保工作表名称是“track”

function addNewRow(rowData) {

   
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName("track");
  ws.appendRow([rowData.item, rowData.qty]);
} 

已编辑
所以我终于弄清楚出了什么问题——我用于电子表格的谷歌账户与在谷歌 chrome 浏览器上登录的 gogole 账户不匹配。 这就是为什么表单提交没有通过 希望对某人有所帮助..

【问题讨论】:

  • 欢迎来到Stack Overflow。您的 HTML 格式错误,head 标签未关闭,并且 body 标签未打开,如果在 Google Apps 脚本执行日志中的 Web 浏览器控制台中记录了任何文本错误消息,则应包含文本错误消息。
  • 哎呀.. 抱歉。如何包含控制台错误?
  • 您能否记录您在rowData 中获取的内容以查看rowData.item 是否存在?

标签: html google-apps-script google-sheets web-applications


【解决方案1】:

我猜 addRow 应该是这样的

function addNewRow(e) {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName("track");
  ws.appendRow([e.namedValues['item'],e.namedValues['qty']]);
} 

您必须为 addNewRow() 的电子表格创建可安装的 onFormSubmit 触发器

onFormSubmit event object

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多