在谷歌表单之上构建一个调查系统

时间:2013-02-05 23:49:18

标签: php wordpress google-drive-api google-spreadsheet-api survey

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

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

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

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

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

  • 我们需要查看单个条目的数据,而谷歌只为您提供了很难阅读的整个电子表格。

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

非常感谢!

UPGRADE:

我们决定通过api访问使用谷歌表格,谷歌融合表,谷歌图表的混合。这是简化的算法:

  1. 管理员用户通过Google表单创建表单并保存网址。要获得更多字段类型,用户可以在字段注释中添加标记,例如[file],以及文件上传。
  2. 将网址放入我们系统的管理页面。该页面获取表单页面的内容并推断为数组,每个字段,标题,ID,类型和注释;如果评论中有一些标记,则会成为字段类型。
  3. 使用此数据,系统创建(如果不存在)内部具有融合表的文件夹。如果存在文件字段,则生成另一个子文件夹。保存这些文件夹和文件的地址。
  4. 使用数组数据,在融合表中为每个数组字段创建一个列,其列标题为“[field_ID field_type] field_title”,加上最终用户ID的列。
  5. 管理员用户可以更多地打开或关闭表单。
  6. 当用户转到表单页面时,该数组用于生成表单。如果系统内存中没有用户ID,则表示用户从未填写过表单。否则,系统将使用用户ID从融合表中获取数据以填充表单。
  7. 当用户填写表单时,使用字段ID作为参考以及用户ID将条目提供给列。用户ID也存储在系统中,记住用户已填写表单,如第5点所述。如果文件已上传,则存储在gdrive文件夹中。
  8. 因此管理员用户可以访问管理页面,查看有多少人填写表单,可以询问单个用户数据,使用谷歌图表查询摘要数据,可以从单个用户,每个用户下载PDF数据或摘要。
  9. 当然这是我们必须建立它的想法。第一个问题是我们是否应该使用javascript或php与谷歌进行通信,以便在客户端或服务器端进行处理......

1 个答案:

答案 0 :(得分:0)

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

PHP可以因为它是服务器端语言。 Zend Framework使您可以轻松地与Google Spreadsheets进行交互。 http://framework.zend.com/manual/1.12/en/zend.gdata.spreadsheets.html

如果这是你的问题,那么请使用PHP。