使用帖子自定义谷歌应用程序脚本方法以将数据附加到工作表

时间:2017-11-29 03:43:31

标签: reactjs google-apps-script google-sheets

目前我正在尝试使用谷歌应用脚​​本将数据发送/附加到电子表格,但是如果我点击submit按钮,我希望页面不会重定向为https://www.selly.id/如果您尝试从中发送数据表单,它只更改UI,数据被发送到工作表, 所以我必须使用JS或其他方法来改变它

这是我当前的网站https://selly-midtrans.herokuapp.com/,但它现在正常工作

function doPost(e){
  var vals=[];
  vals.push(new Date());
  for(var i in e.parameter){
    vals.push(e.parameter[i]);
  }
  SpreadsheetApp.openById("1gMjG4MWTLzoPncVkJ_nGimYdiXULzCvYt5nvqCf4Z4o").appendRow(vals);
//  return ContentService.createTextOutput("added");
}

function doGet(e){
  var vals=[];
  vals.push(new Date());
  for(var i in e.parameter){
    vals.push(e.parameter[i]);
  }
  SpreadsheetApp.openById("1gMjG4MWTLzoPncVkJ_nGimYdiXULzCvYt5nvqCf4Z4o").appendRow(vals);
  return ContentService.createTextOutput("added");
}

这是我的表格

<form  id="form" method="post" action="https://script.google.com/a/41studio.com/macros/s/AKfycbwlP_LSQSRHI0wIoJtfwFXiAJttawlYV5dN1PFpAOMtdZ2D-Iz7/exec" accept-charset="UTF-8">
    <input type="text" name="newletter_name" placeholder="Name"/>
    <input type="text" name="newletter_email" placeholder="Email"/>
    <input type="submit" value="Subscribe"/>
</form>

我有点困惑

仅供参考:我使用react JS开发它

1 个答案:

答案 0 :(得分:0)

您可以使用Javascript为您执行此操作,而不是从表单发出POST请求,并阻止页面重新加载。

由于您使用的是反应,因此触发器为onSubmit={this.handleSubmit}

然后创建处理提交的方法,如下所示。 YO

handleSubmit = (e) => {
  e.preventDefault(); //this prevents the page from reloading
  const opts = {
    method: 'POST',
    body: ...  //fix this to whatever parameters you are passing
  };

  fetch(URL, opts)
    .then(response => console.log(response))
    .catch(error => console.log(error));
}

using the fetch API is here

的文档

您可以使用axios这样的包来更轻松地处理获取请求。

关于在Google Apps脚本中使用doPost(e)我做了blog post但是,它没有使用ReactJS,因此可能没有帮助。