小编典典

AJAX发布到Google电子表格

ajax

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

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

我使用成功设置来验证我的表单数据已正确序列化(正确)并且成功。但是,我的Google电子表格未更新(没有数据通过)。我在此处使用了示例代码,将doGet更改为doPost(http://mashe.hawksey.info/2011/10/google-
spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit- method
/),并已公开提供Google电子表格(任何人均可编辑)。我按照说明进行操作,将代码复制到googledocs中,然后运行两次setUp(第一次请求权限,第二次运行它时,我什么都没注意到)。谁能帮我?我觉得我超级亲密。


阅读 247

收藏
2020-07-26

共1个答案

小编典典

好吧,我想出了一个解决方案。在了解了跨域AJAX问题后,我决定继续进行“
t”操作,该方法是本文作者在http://mashe.hawksey.info/2011/10/google-spreadsheets-
as使用的方法数据库插入带有应用程序脚本形式的postget提交方法/

要将数据发布到您的Google电子表格,请首先制作电子表格,然后将工作表名称(左下角)更改为DATA。接下来,在电子表格中打开脚本编辑器(工具==>脚本编辑器),然后从文章中粘贴脚本。将“
doGet(e)”更改为“
doPost(e)”。运行两次setUp脚本。第一次它会要求运行许可(授予它),然后第二次您选择运行它,那么您将不会得到任何弹出窗口指示它已经运行(我在编辑器中运行了我的程序,因此上面说了“
running
setUp”代码输入区,仅此而已)。之后,在脚本编辑器中选择“发布”,然后选择“发布为服务”。单击“允许任何人调用此服务”单选按钮和“允许匿名访问”复选框。复制网址(重要!),然后点击“启用服务”。这是“困难的部分”。

在HTML表单中,您提交的每个元素都必须具有“名称”属性(例如)。此名称是数据发送的方式-
每个条目都附加到其名称上。确保对于要收集的每个表单数据,都有一个名称,并将该名称作为电子表格上的一列输入(这就是它将数据从表单映射到电子表格的方式)。对于您的表单,将发布方法和操作设置为“按服务发布”
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
.submit()。例如:

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

就是这样。祝好运!

2020-07-26