Google Scripts Problemas variables

Estoy trabajando en un sistema de reservas de habitaciones usando Google scripts y una hoja de cálculo. Se trata de obtener información del usuario (como su nombre, correo electrónico, número de teléfono), y luego popular la hoja de cálculo en su fila solicitada. Quiero hacer el formulario que rellenan en HTML para que pueda darle un estilo agradable y tener todas las preguntas en un solo lugar. Antes estaba usando ui.prompt, pero no creo que sea posible tener todas las preguntas en un solo momento. Cuando sólo había una pregunta por impulso era muy larga y quizás confusa para el usuario. Si me equivoco aquí y hay una manera de poner más de una pregunta en un ui.prompt que sería realmente útil saber... De todos modos, de vuelta a mi pregunta original. Tengo el formulario ya escrito, pero no puedo averiguar cómo transferir la entrada del usuario (establecido en variables) a mi script principal (Code.gs). Todo el código HTML está en otro script llamado sideBar.html.

Aquí está el código que tengo en HTMl:

Cualquier ayuda sobre cómo transferir estas variables de vuelta a mi script Code.gs sería MUCH apreciado! Sé que esto es largo, pero gracias!

Pregunta hecha hace 3 años, 4 meses, 29 días - Por geekglitcher1735


2 Respuestas:

  • Para transferir las variables del formulario HTML a tu script principal Code.gs en Google Scripts, puedes hacer lo siguiente:

    • Asegúrate de que has incluido la función google.script.run en tu script HTML para enviar los datos del formulario al servidor:
    html

    • En tu script Code.gs, crea una función para procesar los datos del formulario:
    javascript
    function procesarFormulario(formData) {
      var userName = formData.get("userName");
      var userPhone = formData.get("userPhone");
      var userEmail = formData.get("userEmail");
      var typeUser = formData.get("typeUser");
      var reasonRes = formData.get("reasonRes");
      var rowId = formData.get("rowId");
      var lengthRes = formData.get("lengthRes");

    // Aquí puedes hacer lo que necesites con las variables de los datos del formulario }

    • Dentro de la función procesarFormulario en tu script Code.gs, puedes hacer operaciones con los datos del formulario, como por ejemplo, guardarlos en una hoja de cálculo:
    javascript
    function procesarFormulario(formData) {
      // Obtener los datos del formulario
      var userName = formData.get("userName");
      var userPhone = formData.get("userPhone");
      var userEmail = formData.get("userEmail");
      var typeUser = formData.get("typeUser");
      var reasonRes = formData.get("reasonRes");
      var rowId = formData.get("rowId");
      var lengthRes = formData.get("lengthRes");

    // Guardar los datos en la hoja de cálculo var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheetByName("Nombredetu_hoja");

    sheet.appendRow([userName, userPhone, userEmail, typeUser, reasonRes, rowId, lengthRes]); }

    Con estos pasos, deberías poder transferir los datos del formulario HTML a tu script principal en Google Scripts y procesarlos como desees. ¡Espero que esta información te sea útil! Si tienes alguna otra pregunta, ¡no dudes en decírmelo!

    Respondida el Dec 17, 2020 a las 20:54 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para transferir las variables del formulario HTML a tu script principal (Code.gs), sigue estos pasos:

    1. Modifica el archivo HTML (sideBar.html)

    Agrega el siguiente código al final del archivo HTML para enviar los datos del formulario a una función en tu script principal:

    html
    
    

    2. Crea una función transferVariables en Code.gs

    En tu script principal (Code.gs), crea una función llamada transferVariables que acepte un argumento de tipo Object[]:

    javascript
    function transferVariables(inputs) {
      // Iterar sobre las entradas del formulario
      for (let i = 0; i < inputs.length; i++) {
        const input = inputs[i];
    
        // Obtener el nombre de la entrada y el valor ingresado
        const name = input.name;
        const value = input.value;
    
        // Almacenar el valor en una variable global para que esté disponible en todo el script
        global[name] = value;
      }
    }
    

    Esta función almacenará cada nombre de entrada (como "userName", "userEmail", etc.) como una clave en el objeto global y el valor ingresado como el valor correspondiente.

    3. Accede a las variables en Code.gs

    Una vez que se ejecuta la función transferVariables, puedes acceder a las variables establecidas por el usuario desde cualquier lugar de tu script principal usando la notación de punto, por ejemplo:

    javascript
    const userName = global.userName;
    const userEmail = global.userEmail;
    // ...
    

    Ejemplo de uso

    Para usar este enfoque, sigue estos pasos:

    • Guarda los cambios en el archivo sideBar.html.
    • Implementa la función `transferVariables` en Code.gs.
    • En el formulario HTML, cuando el usuario hace clic en el botón "Enviar", se llamará a la función `storeInfo`, que enviará los datos del formulario a la función `transferVariables`.
    • En tu script principal, puedes acceder a las variables establecidas por el usuario usando el objeto global, como se muestra en el ejemplo anterior.

    Este enfoque te permitirá transferir los datos del formulario HTML a tu script principal de manera eficiente y acceder fácilmente a ellos desde cualquier parte del script.

    Respondida el Dec 17, 2020 a las 20:59 - por Gemini

    Votos positivos: 0 | Votos negativos: 0