当前位置: 首页 > 知识库问答 >
问题:

AJAX发布到谷歌电子表格

吴松
2023-03-14

我正在尝试将表单数据发布到google电子表格中。当前,如果表单已验证,则会发生以下情况:

if (validateForm === true) {
        $.ajax({
            type: 'post',
            url: 'https://docs.google.com/spreadsheet/ccc?key=0AlwuDjMUxwhqdGp1WU1KQ0FoUGZpbFRuUDRzRkszc3c',
            data: $("#workPLZ").serialize(),
            success: alert($("#workPLZ").serialize())
        });
    }
    else {}

我使用了成功设置来验证我的表单数据是否被正确序列化(它是),以及是否成功。然而,我的谷歌电子表格没有更新(没有数据通过)。我在这里使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit-method/),并使谷歌电子表格公开(任何人都可以编辑)。我按照说明,将代码复制到googledocs,然后运行安装程序两次(第一次请求许可,第二次运行时,我没有注意到任何事情发生)。有人能帮我吗?我觉得我非常接近。

共有3个答案

缑兴贤
2023-03-14

我将向您展示一种简单的方法,可以在没有AJAX的情况下将数据发送到Google电子表格,既不使用Google表单,也不使用PHP。。。只有谷歌电子表格和HTML,甚至Android系统。

  1. 创建一个新的谷歌电子表格

在编辑器中只需要两个文件:HTML和代码。一般事务:

作为一个例子:

转到File/new超文本标记语言名称this file=Index.html:

<!DOCTYPE html>
<html>
<head>
<base target="_top">

<script>
function Enviar(){

var txt1=document.getElementById("txt1").value;
var txt2=document.getElementById("txt2").value;
var txt3=document.getElementById("txt3").value;
google.script.run.doSomething(txt1,txt2,txt3);
}
</script>
</head>

<body>
Prueba de Envio de informacion<br>
<input type="text" value="EMAIL" name="txt1" id="txt1"><br>
<input type="text" value="CEDULA" name="txt2" id="txt2"><br>
<input type="text" value="NOMBRE" name="txt3" id="txt3"><BR>
<Button name="btn1" onClick="Enviar();">Enviar</button>
</body>

</html>

有3个字段要发送:电子邮件、CEDULA、NOMBRE

在同一个ScriptEditor转到de Code.gs文件并键入:

function doGet() {
return HtmlService.createHtmlOutputFromFile('Index')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function doSomething(s1,s2,s3){

Logger.log('datos:'+s1+"  "+s2+"  "+s3);
var enlace="https://docs.google.com/spreadsheets/d/
1XuAXmUeGz2Ffr11R8YZNihLE_HSck9Hf_mRtFSXjWGw/edit";
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ss = SpreadsheetApp.openByUrl(enlace);
var sheet = ss.getSheets()[0];
sheet.appendRow([s1, s2, s3]);
Logger.log(ss.getName());
}

其中enlace是电子表格的url

梁英喆
2023-03-14

由于GoogleApps脚本现在有一个ContentService,可以返回JSON响应,因此可以在不使用隐藏的iframe的情况下发出ajax请求。作为原始解决方案的作者,我已经发布了此技术的更新版本,其中包括一个ajax示例

用户可能还想考虑切换到这个新版本,因为它使用了其他新的谷歌应用脚本服务,特别是:

  • 使用LockService防止并发写访问;和
沙富
2023-03-14

好吧,我想出了一个解决办法。在得知跨域AJAX问题后,我决定继续使用本文作者在http://mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit-method/.

要将数据发布到google电子表格中,首先制作电子表格并将工作表名称(左下角)更改为数据。接下来,打开脚本编辑器(工具)==

在超文本标记语言表单中,提交的每个元素都必须具有名称属性(例如:)这个名称是数据的发送方式——每个条目都附加在它的名称上。确保您正在收集的每一条表单数据都有一个名称,并且该名称作为电子表格中的一列输入(这就是它将数据从表单映射到电子表格的方式)。对于表单,将要发布的方法和操作设置为您的发布为服务URL(我告诉您要保存),如下所示:

<form id="formID" method="post" action="URL" target="hidden_iframe">

我包含了一个表单id,这样我可以选择表单并使用jquery提交它。在HTML中,在上述表单之前,添加隐藏的iframe:

<iframe name="hidden_iframe" id="hidden_iframe" style="display:none;"></iframe>

设置某种形式的表单验证(没有必要,但如果每个字段都没有填写,那么电子表格中的数据将不完整),如果验证了,则调用jquery。提交()。例如。:

    if (formValidation === true){
           $("#formID").submit();
    }
    else {}

就这样。祝你好运

 类似资料:
  • 我正在测试新的谷歌电子表格,因为我真的需要一个新功能:200张的限制已经取消(更多信息:https://support.google.com/drive/answer/3541068)。 但是,我不能像旧版本那样将电子表格发布到CSV。我去“档案室” 发布的“不支持的功能”文档中未提及此限制,该文档位于:https://support.google.com/drive/answer/3543688

  • 问题内容: 我正在尝试将表单数据发布到Google电子表格。当前,如果表单经过验证,则会发生以下情况: 我使用成功设置来验证我的表单数据已正确序列化(正确)并且成功。但是,我的Google电子表格未更新(没有数据通过)。我在此处使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google- spreadsheets-as-a-da

  • 我是谷歌脚本的新手,不知道是否有人能帮我。 我有一个共享的谷歌电子表格,基本上是用新的员工信息更新行。 我希望只有当插入这些新员工行时,特定列(比如F列)上的“ABC”字符串匹配时,才会触发电子邮件。基本上,电子邮件触发器会让我们的团队知道如何设置新的员工帐户。 有人能帮我吗?我不知道如何进行字符串匹配,也不知道如何让它专门发送给固定的电子邮件收件人。我已经安装了Python、gspread和gd

  • 试图复制整个电子表格,但我想没有api可以这样做。 基本上,我正在尝试做以下工作: 有一个电子表格,我想对其进行小的更改。 创建一个新的电子表格,将模板中的所有表格逐个复制到新的电子表格中(电子表格复制会更有效率) 创建新的电子表格工作正常,但从电子表格复制表格不起作用。 尝试了两种方法: 角: 给出以下错误: 对飞行前请求的响应未通过访问控制检查:无“访问控制允许原点” Google Sheet

  • B页中有图表,其中有源数据。我想以这样一种方式将图表导入到主电子表格B中,当图表在表格B中更改时,它也应该在主表格A中动态更改。 经过大量的研究,我能够找到以下内容: Importrange-只导入数据,而不是图表 复制图表本身并将其粘贴到主工作表A,但当图表在工作表B中动态变化时,它不会更改。 发布图表并将URL作为图像插入-如果主表A是google电子表格,则不起作用,但适用于google文档

  • 可编辑链接-https://docs.google.com/spreadsheets/d/1vrzchTHVwwzc9wgFGmtc_zBsh27CEtE7KOyeNDuLwC0/edit?usp=sharing 发布至网页-https://docs.google.com/spreadsheets/d/e/2PACX-1vRaJd3YpKnemAneU47RI58m7cxQsYFdViFBxJPV