Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 如何通过修改存储表单制作动态google表单_Google Apps Script_Google Forms - Fatal编程技术网

Google apps script 如何通过修改存储表单制作动态google表单

Google apps script 如何通过修改存储表单制作动态google表单,google-apps-script,google-forms,Google Apps Script,Google Forms,我正在尝试基于存储的表单创建一个动态表单。 我写的代码不起作用 当得到表单的用户填写表单时,运行它, 它应该首先修改所有文本,并用根据上次提交确定的关键字替换单词kkk 如果无法做到这一点,那么我希望在提交时对表单进行修改,以便下次打开它。那有可能吗 我知道onOpen()和onSubmit()中的代码没有修改表单的权限。因此,我创建了自己的modifyForm()函数,并在提交时向表单添加了一个触发器。仍然不起作用 当我将触发器设置为“从窗体打开”时,代码确实起作用,但只有当我关闭窗体并重新打

我正在尝试基于存储的表单创建一个动态表单。 我写的代码不起作用

当得到表单的用户填写表单时,运行它, 它应该首先修改所有文本,并用根据上次提交确定的关键字替换单词kkk

如果无法做到这一点,那么我希望在提交时对表单进行修改,以便下次打开它。那有可能吗

我知道onOpen()和onSubmit()中的代码没有修改表单的权限。因此,我创建了自己的modifyForm()函数,并在提交时向表单添加了一个触发器。仍然不起作用

当我将触发器设置为“从窗体打开”时,代码确实起作用,但只有当我关闭窗体并重新打开它进行编辑时,代码才起作用。-这种行为被记录在案。所以,我再次寻找一种方式,每次运行表单,或者每次提交表单时,都会动态修改表单

function onModify(){
    var form = FormApp.getActiveForm();

    var imgURL = "http://whatever.com/someimg.jpg";
    var img = UrlFetchApp.fetch(imgURL);
    // i first check that there is an image item in the current form and then
    var imgItem = form.getItems(FormApp.ItemType.IMAGE)[0];
    imgItem.setImage(img);

    var keyword = "aaaa"; //getKeyword(); // some text returning function
    var items = form.getItems();
    for (i=0; i<items.length; i++){
       var title = items[i].getTitle();
       title = title.replace("kkkk", keyword); 
       items[i].setTitle(title);
    }

    return form;
}
函数onModify(){
var form=FormApp.getActiveForm();
变量imgURL=”http://whatever.com/someimg.jpg";
var img=UrlFetchApp.fetch(imgURL);
//我首先检查当前表单中是否有图像项,然后
var imgItem=form.getItems(FormApp.ItemType.IMAGE)[0];
imgItem.setImage(img);
var keyword=“aaaa”//getKeyword();//一些文本返回函数
var items=form.getItems();

for(i=0;i仅在谷歌表单上是不可能的

因此,我的解决方案是创建表单的四个存储副本,预先替换“kkk”关键字,所有副本都指向同一个电子表格,但指向不同的工作表,然后在一个单独的网站上,我用python通过重定向来决定向用户呈现哪个表单副本

我必须存储某种标识,这样用户就不会得到两种类型的表单(但这是一个单独的问题)