2017-03-21 79 views
0

我已经制作了一个可以由bridgeclubs用于注册bridgedrive的formystem(Drivea)。注册表单(表单1)的第一个问题是在(1)注册,(2)更改其以前的签署数据或(3)在早先注册后退出桥接服务器 当人们想要更改其以前的签约数据时,他们只需提供一个数字代码(已在确认邮件在注册后)和他们的电子邮件地址,直接他们会收到一封电子邮件,其中预先填写了Url。这个预先填写的Url提供了另一种形式,而不是第一种形式(带有上述3种选择),几乎具有相同的问题。从第一个表单的响应表中提取并从第二个表单填入预填写的Url。在更改数据并提交第二个表单后,新的数据被再次复制到res形式1的ponsesheet。 在预填充的url中是itemresponse id与相应的数据。这些数字是通过获取表单2的url给出的。这些数字用于表单1的脚本中以构建预填充的Url。这是非常好的,因为只要这两种形式的问题都没有改变,这些数字就永远不会改变。 目前为止这么好。我如何获得项目响应ID?

现在我正在开发桥梁俱乐部可以添加额外问题(项目)的形式。他们能够删除额外的项目,并且如果有必要的话带回额外的(其他)问题。这可以通过我所做的一些功能来实现。 但是,每当itemresonse标识正在更改该额外问题时,在表单中设置了一个额外的项目(并自动也在表单2中)。 所以我要寻找一个解决方案的形式这个问题之前,找到在形式上2这个问题的反应ID被填充。

在一个形式,你侃通过项目获得项目的ID(数字) .getId()。当表格被制作时,这些标识符被直接分配。 要获得itemresponse id的你必须去表单(编辑)获得预填充的网址。填写并提交表单后,会显示带有itemresponse ID的网址。正如上面提到的表单2所示。 在我看来,逻辑上与item id相同,在填写表单的所有答案以获取预填充Url之前,已经知道这些itemresponse id。

我的问题是如何获得程序化这些itemresponse id的?

+0

老实说,我可能不知道你做什么比你做得更多,但结帐这[链接](https://developers.google.com/apps-script/reference/forms/item) – Cooper

+0

对不起,没有解决方案.. – user3887038

+0

你的问题中有很多信息可能不需要某人理解你想要的东西。涉及到两个表单。您想在Form1中的相应问题得到回答之前获取Form2中的问题ID?也许您可以将问题ID存储在文档属性中,添加该问题时,然后查找保存的已保存信息。我的印象是,你需要某种方式将两种形式的匹配问题联系起来?问题发生时,您需要在某处保存这些信息。除非标题相同,然后 –

回答

0

问题已解决。响应标识号码不需要获取预填充网址。

OnformSubmit (e) { 
...... 
var formResponse = form2.createResponse(); 
// Prefill first name 
var formItem = itemsform2[0].asTextItem(); 
var response = formItem.createResponse(sourcedata[i-1][2]); 
formResponse.withItemResponse(response); 
// Prefill insertion 
var formItem = itemsform2[1].asTextItem(); 
var response = formItem.createResponse(sourcedata[i-1][3]); 
formResponse.withItemResponse(response); 
// Prefill family name 
var formItem = itemsform2[2].asTextItem(); 
var response = formItem.createResponse(sourcedata[i-1][4]); 
var url = formResponse.toPrefilledUrl(); 
...... 
} 

i是形式1的响应片的行,sourcedata是该行中的答案和的FormItem在形式2 它的工作原理很好的相应项目。