在谷歌表格的基础上建立一个调查系统


Build a survey system on top of google forms

我们使用wordpress在谷歌表单的基础上构建了一个调查工具。

简单地说,你创建一个谷歌表单,创建一个私人开放链接,放入wordpress后端页面,然后系统处理模块服务器端并生成必要的html文件。当用户填写并发送表单时,服务器通过ajax使用zend-gdata将结果写在连接到表单et voilat的电子表格上。

但这个系统是有限的,也因为谷歌的形式是相当有限的。我们想改进它。这就是为什么我要征求你的意见,升级系统以拥有更多功能:

  • 我们希望能够保持表格的开放性,以便用户可以多次填写。理论上,我们需要知道电子表格行连接到哪个用户。这可以通过保存某种ID键来识别用户来完成,但我们不知道如何填充表单中的字段,因为从表单创建的电子表格没有保留任何键来连接列和表单字段。

  • 我们需要更多的字段类型!比如一个文件上传字段,它将上传的文件放在特定的gdrive文件夹中。

  • 我们需要看到单个条目的数据,而谷歌只给你整个很难阅读的电子表格。

这不是一项容易的任务!我们应该使用哪些解决方案来解决这些问题?

非常感谢!

升级:

我们决定通过api访问混合使用谷歌表单、谷歌融合表和谷歌图表。以下是简化的算法:

  1. 管理员用户通过谷歌表单创建他的表单并保存url。为了拥有更多的字段类型,用户可以在字段注释中放置一个标记,例如,上传文件的[file]
  2. url被放入我们系统的管理页面中。页面获取表单页面的内容,并外推到一个数组中,用于每个字段、标题、ID、类型和注释;如果注释中有某个标记,则该标记将成为字段类型
  3. 使用这些数据,如果不存在,系统将创建一个包含融合表的文件夹。如果存在文件字段,则会生成另一个子文件夹。保存这些文件夹和文件的地址
  4. 使用数组数据,在融合表中为每个数组字段创建一列,列标题为"[field_ID field_type]field_title",再加上一列作为最终用户ID
  5. 管理员用户,可以更多地打开或关闭表单
  6. 当用户进入表单页面时,数组用于生成表单。如果系统内存中没有用户ID,则表示用户从未填写过表单。否则,系统将使用用户ID从融合表中获取数据以填充表单
  7. 当用户填写表单时,使用字段ID作为参考,再加上用户ID,将条目馈送到列中。用户ID也存储在系统中,记住用户已经填写了表单,如第5点所述。如果上传了文件,它们将存储在gdrive文件夹中
  8. 因此,管理用户可以访问管理页面,查看有多少人填写了表格,可以要求提供单用户数据,使用谷歌图表获取汇总数据,可以从单用户、每个用户或摘要下载pdf数据

当然,这是我们的想法,我们必须建立它。第一个问题是,我们是否应该使用javascript或php与谷歌通信,因此在客户端或服务器端进行处理。。。

如果您询问的是Javascript与PHP,您应该知道,由于跨域安全问题,Javascript API无法写入Google电子表格。

PHP可以,因为它是一种服务器端语言。Zend框架使与Google电子表格的交互变得简单。http://framework.zend.com/manual/1.12/en/zend.gdata.spreadsheets.html

所以,如果这是你的问题,那就用PHP吧。