Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 谷歌应用程序脚本-将用户输入从边栏写入电子表格_Html_Google Apps Script_Google Sheets_Sidebar - Fatal编程技术网

Html 谷歌应用程序脚本-将用户输入从边栏写入电子表格

Html 谷歌应用程序脚本-将用户输入从边栏写入电子表格,html,google-apps-script,google-sheets,sidebar,Html,Google Apps Script,Google Sheets,Sidebar,我在电子表格中有一个带有一些输入字段的边栏。 我遇到的麻烦是检索用户的响应以放入电子表格 我正在使用以下HTML在HTML表单中使用action属性: <form action="demo_form.asp"> Run Number: <input type="text" name = "number"><br> <input type="submit" value="Submit" > </form> 运行编号: 如何在

我在电子表格中有一个带有一些输入字段的边栏。 我遇到的麻烦是检索用户的响应以放入电子表格

我正在使用以下HTML在HTML表单中使用
action
属性:

<form action="demo_form.asp">
  Run Number: <input type="text" name = "number"><br>
  <input type="submit" value="Submit" >
</form>

运行编号:

如何在用户单击“提交”后从“数字”中提取内容,以便将其粘贴到电子表格中。

您必须使用
google.script.run
客户端API。这是技术术语。不能像使用“复制”和“粘贴”一样,将HTML中的值“粘贴”到电子表格中

您需要从
标记中删除
操作
属性。这可能会引起问题

不要使用
submit
type输入标记<代码>

带有“submit”的表单中典型的HTML行为会导致发出HTTPS请求,这不是您想要的。您需要检索一个或多个值或整个表单,然后将这些值发送到服务器

即使值从“客户端”发送到服务器,并写入电子表格数据,它也会自动显示在电子表格中。因此,它不是将数据从侧栏直接插入电子表格。它从边栏转到服务器,保存到驱动器中的电子表格数据,然后显示在电子表格的浏览器中

如果将表单对象发送到服务器,则不能发送任何其他内容。如果向服务器发送单个值,则可以发送多个参数。另一个选项是将对象转换为字符串(JSON.parse(object))并将字符串发送到服务器

<form id="myForm">
<input type="button" value="Submit" onmouseup="writeData()">

<script>
  window.writeData = function() {
    var formObj = document.getElementById('myForm');

    google.script.run
      myServerFunctionName(formObj);
  };
</script>
function myServerFunctionName(argForm) {
  var valueFromFormObj = argForm.nameAttributeName;

  var ss= SpreadsheetApp.
  var sh = ss.getSheetByName();

  var rng = sh.getRange();

  rng.setValue(valueFromFormObj );
}