gpt4 book ai didi

google-apps-script - 根据之前的数据动态地在表单中创建一个新页面。页

转载 作者:行者123 更新时间:2023-12-04 04:49:35 37 4
gpt4 key购买 nike

我有一个关于 google-apps-script 表单的问题。假设我已经创建了一个表单,其中包含一个页面和一个文本输入框。
是否可以根据文本框外的数据动态创建后续页面?类似的东西:

First Page:插入客户id -> continue -> Second Page:客户信息。

我知道有诸如 onLoad 和 onSubmit 之类的事件,但例如没有 onContinue 事件。

是否可以使用 google-apps-script 创建类似的东西?归档此类行为的最佳方法是什么?
B.R.

最佳答案

使用 UiApp服务,您有一个doGet()和一个 doPost()功能...但这里有一种扩展它们以支持动态多部分表单的方法。 (示例代码是从 this answer 借来的。

您的 doGet()只需构建表单的第 1 部分。但是,在表单中,您需要按名称标识表单,如下所示:

  var form = app.createFormPanel().setId("emailCopyForm");

doPost()然后,将根据提交的表单将 post 操作的处理传递给不同的函数。见下文。 (还包括: reportFormParameters () ,一个默认处理程序,将显示表单部件收集的所有数据。)
/**
* doPost function with multi-form handling. Individual form handlers must
* return UiApp instances.
*/
function doPost(eventInfo) {
var app;
Logger.log("Form ID = %s", eventInfo.parameter.formId);
// Call appropriate handler for the posted form
switch (eventInfo.parameter.formId) {
case 'emailCopyForm':
app = postEmailCopyForm(eventInfo);
break;
default:
app = reportFormParameters (eventInfo);
break;
}
return app;
}

/**
* Debug function - returns a UiInstance containing all parameters from the
* provided form Event.
*
* Example of use:
* <pre>
* function doPost(eventInfo) {
* return reportFormParameters(eventInfo);
* }
* </pre>
*
* @param {Event} eventInfo Event from UiApp Form submission
*
* @return {UiInstance}
*/
function reportFormParameters (eventInfo) {
var app = UiApp.getActiveApplication();
var panel = app.createVerticalPanel();
panel.add(app.createLabel("Form submitted"));
for (var param in eventInfo.parameter) {
switch (param) {
// Skip the noise; these keys are used internally by UiApp
case 'lib':
case 'appId':
case 'formId':
case 'token':
case 'csid':
case 'mid':
break;

// Report parameters named in form
default:
panel.add(app.createLabel(" - " + param + " = " + eventInfo.parameter[param]));
break;
}
}
app.add(panel);
return app;
}

为了生成每个表单部分,后续的表单处理程序可以使用在之前部分中检索到的数据将新的表单对象动态添加到 ui。

关于google-apps-script - 根据之前的数据动态地在表单中创建一个新页面。页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17620836/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com