Estoy tratando de enviar datos del formulario a una hoja de cálculo de google. En la actualidad, si el formulario se valida, entonces ocurre lo siguiente:

if (validateForm === true) {
        $.ajax({
            type: 'post',
            url: 'https://docs.google.com/spreadsheet/ccc?key=0AlwuDjMUxwhqdGp1WU1KQ0FoUGZpbFRuUDRzRkszc3c',
            data: $("#workPLZ").serialize(),
            success: alert($("#workPLZ").serialize())
        });
    }
    else {}

He usado el éxito de configuración para verificar mis datos del formulario se publica por entregas correctamente (es) y que sea exitoso. Sin embargo, mi hoja de cálculo de google no está siendo actualizado (datos no está pasando). He utilizado el código de ejemplo aquí, el cambio de doGet a doPost (http://mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit-method/), y han hecho de la hoja de cálculo de google disponible públicamente (y editable por cualquier persona). He seguido las instrucciones, copiar el código para google docs y, a continuación, ejecuta el programa de instalación de dos veces (la primera vez que le pide permiso, segunda vez que me corrí yo no me di cuenta de que algo sucediera). Alguien me puede ayudar? Yo me siento super cerca.

  • normalmente cross site scripting es impedido (es decir, ajax post a un dominio distinto al actual está en), y mientras que nos devuelve un 200 código, es realmente un error en silencio. Está usted seguro de que este no es el caso?
  • No tengo idea, yo soy relativamente nuevo en todo esto. ¿Cómo puedo comprobar?
  • workPLZ. cómo me siento el 99% del tiempo

3 Comentarios

  1. 36

    Bien, se me ocurrió una solución. Después de ser informado de la cruz-AJAX de dominio temas, decidí seguir adelante y seguir a una «t» el método utilizado por el autor del artículo en http://mashe.hawksey.info/2011/10/google-spreadsheets-as-a-database-insert-with-apps-script-form-postget-submit-method/.

    Para publicar datos en su hoja de cálculo de google, en primer lugar hacer la hoja de cálculo y cambiar el nombre de la hoja (esquina inferior izquierda) a los DATOS. A continuación, abra el editor de secuencias de comandos (Herramientas ==> Editor de secuencias de Comandos) en la hoja de cálculo y pegar el script en el artículo. Cambio «doGet(e)» a «doPost(e)». Ejecutar el script de instalación dos veces. La primera vez se le pedirá permiso para ejecutar (grant), a continuación, la segunda vez que seleccione ejecutar no obtener ningún popup indicación de que se ha ejecutado (yo encontré la mía en el editor, por lo que dijo «que se ejecuta el programa de instalación» por encima de la entrada de código de área, pero eso fue todo). Después de eso, seleccione «Publicar» en el editor de secuencias de comandos y, a continuación, seleccione «Publicar como Servicio». Haga clic en la opción «Permitir a cualquier persona para invocar este servicio de botón de radio» y la opción «Permitir acceso anónimo» casilla de verificación. Copia la URL (¡IMPORTANTE!) y haga clic en «Habilitar el Servicio». Esta fue la «difícil».

    En su formulario HTML, cada elemento que vas a enviar debe tener un atributo «name» (por ejemplo ) Este nombre es como el que se envían los datos – cada entrada está conectado a su nombre. Asegúrese de que cada pieza de datos de formulario que usted está recogiendo, tiene un nombre, y ese nombre se introduce como una columna en la hoja de cálculo (que es como los mapas de los datos de su formulario de la hoja de cálculo). Por su forma, establecer el método para enviar y la acción de su «Publicar como Servicio» de la dirección URL (que te he dicho a usted para salvar a) como este:

    <form id="formID" method="post" action="URL" target="hidden_iframe">

    He incluido un formulario de identificación para que yo pueda seleccionar el formulario y enviarlo con jquery. En tu HTML, antes de que el formulario anterior, agregar el iframe oculto:

    <iframe name="hidden_iframe" id="hidden_iframe" style="display:none;"></iframe>

    Establecer algún tipo de validación de formulario (no es necesario, pero si cada campo no se rellena, podrás obtener datos incompletos en la hoja de cálculo), y si se valida tiene que llamar un jquery .submit().
    por ejemplo:

        if (formValidation === true){
               $("#formID").submit();
        }
        else {}

    Así que es eso. Buena suerte!

    • La pieza final del rompecabezas es algún tipo de respuesta de confirmación de que se ha documentado aquí el uso del iframe onload(). Ciertamente, no es a prueba de balas, pero es un comienzo. stackoverflow.com/questions/467008/…
    • Muchas gracias por tu respuesta, me alegró el día!
    • Nelson . No hay ninguna Publicar como Servicio en su lugar hay desplegar web de la aplicación ! debemos seleccionar que ?
    • esta respuesta es más de 3 años de edad, no tengo idea de lo que el conjunto actual es como.
    • puedo ver una versión simplificada de su caso de uso? Estoy trabajando en stackoverflow.com/questions/43897395/… y estaría encantado de compartir cualquier cosa que eventualmente llegar a su trabajo.
  2. 13

    Como Google Apps Script ahora tiene un ContentService que puede devolver respuestas JSON es posible hacer peticiones ajax sin necesidad de utilizar el iframe oculto. Como el autor del artículo de la solución original he publica una versión actualizada de esta técnica en la cual se incluye un ejemplo de ajax

    Usuarios posible que también desee considerar el cambio a esta nueva versión ya que utiliza otros nuevos de Google Apps Script de Servicios, en particular:

    • utilizando LockService para evitar simultáneas de acceso de escritura; y
    • el cambio a la nueva PropertiesService para almacenar datos de secuencias de comandos
    • El enlace a tu artículo está muerto
    • Servidor de males – debe estar de vuelta
    • puede usted ayudar? stackoverflow.com/questions/33180172/… estoy usando el script pero tratando de enviar un mensaje de correo electrónico cuando el formulario sea Enviado.
    • su código de ejemplo y la respuesta debe ser en Stackoverflow, precisamente para evitar el caso de que los sitios personales que ir hacia abajo.
  3. 3

    Yo te mostraré el CAMINO más FÁCIL para enviar datos a una Hoja de cálculo de Google sin AJAX ni Formulario de Google, o PHP…sólo la Hoja de cálculo de Google y HTML o incluso Android.

    1. Crear una nueva Hoja de cálculo de Google.
    2. De Herramientas/editor de secuencias de comandos

    Sólo necesita dos archivos en el editor de HTML y un Código.gs:

    como un ejemplo:

    1. Ir a Archivo/nuevo HTML nombre de este file=Index.html:

      <!DOCTYPE html>
      <html>
      <head>
      <base target="_top">
      
      <script>
      function Enviar(){
      
      var txt1=document.getElementById("txt1").value;
      var txt2=document.getElementById("txt2").value;
      var txt3=document.getElementById("txt3").value;
      google.script.run.doSomething(txt1,txt2,txt3);
      }
      </script>
      </head>
      
      <body>
      Prueba de Envio de informacion<br>
      <input type="text" value="EMAIL" name="txt1" id="txt1"><br>
      <input type="text" value="CEDULA" name="txt2" id="txt2"><br>
      <input type="text" value="NOMBRE" name="txt3" id="txt3"><BR>
      <Button name="btn1" onClick="Enviar();">Enviar</button>
      </body>
      
      </html>

    hay 3 campos para enviar a CORREO electrónico, CÉDULA, NOMBRE

    1. En el mismo ScriptEditor ir de Código.gs archivo y escriba:

      function doGet() {
      return HtmlService.createHtmlOutputFromFile('Index')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
      }
      
      function doSomething(s1,s2,s3){
      
      Logger.log('datos:'+s1+"  "+s2+"  "+s3);
      var enlace="https://docs.google.com/spreadsheets/d/
      1XuAXmUeGz2Ffr11R8YZNihLE_HSck9Hf_mRtFSXjWGw/edit";
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      var ss = SpreadsheetApp.openByUrl(enlace);
      var sheet = ss.getSheets()[0];
      sheet.appendRow([s1, s2, s3]);
      Logger.log(ss.getName());
      }

    donde el enlace es la dirección url de la Hoja de cálculo

    1. Publicar la Aplicación y obtener la url de su nuevo Guión. Ahora usted puede utilizar esta url como incrustar en el código HTML de la aplicación o la aplicación de android. Eso es todo. El usuario se le pedirá permiso para abrir este script

Dejar respuesta

Please enter your comment!
Please enter your name here