google-apps-script - formularios - google forms api
Opciones de selección dinámica en Google Apps Script para formularios (2)
Hasta donde yo sé, este tipo de evento del lado del cliente no existe en Google Forms. Los mecanismos de scripting de Google Apps Script están diseñados para crear formularios y otros documentos, pero no llegan muy lejos para la funcionalidad del lado del cliente.
Lo que sugiero es que dividas el formulario en varias páginas y utilices la función "Ir a la página según la respuesta" para lograr la funcionalidad que deseas.
Use form.addPageBreakItem()
para crear páginas y use el item.createChoice(value, PageBreakItem)
para navegar a la página correcta.
Referencias
Tengo esta forma :
Si ve los elementos de la lista, el nombre del alumno y las calificaciones se rellenan de una hoja de Google.
Lo que quiero hacer ahora es al seleccionar la calificación del elemento de la lista, mostrar solo aquellos estudiantes que pertenecen a esa calificación en particular en la selección "Seleccionar estudiante" ...
¿Cómo se puede hacer, porque la forma tiene solo dos factores desencadenantes: onOpen y onEdit?
Editar: gracias a la información adicional en los comentarios de seguimiento, la pregunta se ha aclarado y se reduce a esto: "Cuando un usuario realiza selecciones en un Formulario de Google, ¿es posible personalizar las opciones en otras preguntas en ese formulario?"
R: No. Consulte la Edición dinámica de opciones de opciones múltiples en Google Form en vivo mediante Apps Script .
Respuesta original : esto explica cómo se podían cambiar las opciones presentadas en un formulario cuando se editaba el origen de esas opciones (una hoja de cálculo).
Si sus datos se encuentran en una hoja de cálculo de Google, un onEdit
o onChange
en la hoja de cálculo de origen podría responder a los cambios en el nombre y las listas de calificaciones.
El activador onChange
es "instalable" y puede realizar acciones que un simple onEdit
no puede, como modificar un formulario, por lo que sería la mejor opción en este caso.
En la función desencadenante, use FormsApp.openById()
o FormsApp.openByUrl()
, luego actualice las opciones de elementos anteriores con item.setChoices()
, leyendo los valores de la hoja de cálculo tal como lo hizo al crear el formulario.
Para obtener marcas de bonificación ... en lugar de sobrescribir ciegamente las opciones, puede leer las opciones existentes y actualizarlas solo si se modifican.
Advertencia: en una hoja que cambia con frecuencia o con listas largas, este desencadenador será computacionalmente costoso. Es posible que se encuentre con los límites de procesamiento de Google.