2015-03-01 4 views
1

Новые для Google скрипты. Я не могу на всю жизнь получить скрипт Google для работы с формами. Документация не помогает, и я не могу найти никаких примеров.Формы и ответы HTMLService

В листах я пошел в раздел сценария. Я создал базовый html «hello world». Я добавил функцию useMyForm, которая будет вызывать скрипт, который имеет форму в нем. После отправки я не могу получить форму для вызова другого скрипта, который имеет onFormSubmit.

Может ли кто-нибудь написать мне форму с одной записью и вызов функции, которая будет обрабатывать данные? Возможно, мои функции не должны быть в отдельных сценариях.

Я пишу c, php, java ..... этот материал для скриптов Google убивает меня.

+0

Форма HTML и форма Google - это две разные вещи. HTML можно использовать в автономном приложении, в диалоговом окне или в боковой панели. Это всегда исходный материал «без проблем», который заставляет меня навсегда учиться. Взгляните на мой профиль и отправьте мне электронное письмо, если хотите. –

+0

Я понимаю это. Я просто хочу, чтобы моя форма Google взаимодействовала с моими скриптами. Вы знаете кого-то, кто действительно знает, как написать это? Я в редакторе скриптов и создал html-файл, на котором будет размещаться моя форма. – NateV

+0

Вы создали свою собственную форму html или пытаетесь использовать продукт Google Forms? –

ответ

1

Вот пример кода из документации, если есть что-то вы не понимаете, пожалуйста, напишите свою собственную версию кода, который не работает: https://developers.google.com/apps-script/guides/html/communication#forms

Code.gs

function doGet() { 
    return HtmlService.createHtmlOutputFromFile('index') 
     .setSandboxMode(HtmlService.SandboxMode.NATIVE); 
} 

function processForm(formObject) { 
    var formBlob = formObject.myFile; 
    var driveFile = DriveApp.createFile(formBlob); 
    return driveFile.getUrl(); 
} 

index.html

<script> 
    function updateUrl(url) { 
    var div = document.getElementById('output'); 
    div.innerHTML = '<a href="' + url + '">Got it!</a>'; 
    } 
</script> 
<form id="myForm"> 
    <input name="myFile" type="file" /> 
    <input type="button" value="Submit" 
     onclick="google.script.run 
      .withSuccessHandler(updateUrl) 
      .processForm(this.parentNode)" /> 
</form> 
<div id="output"></div> 

Единственное, что мне потребовалось некоторое время, чтобы понять, что при запуске google.script.run.withSuccessHandler(updateUrl).processForm(this.parentNode)

.processForm(variable) будет запускать функцию в файле .gs. Возврат из этой функции (в .gs-файле) отправляется в функцию .withSuccessHandler(updateUrl). Что в приведенном выше примере является переменной «url» от function updateUrl(url)

+0

Большое спасибо. Весь мой код работал ... Мне нужно было аутентифицировать две функции. Это сценарий Google «вещь», с которым я никогда не сталкивался. – NateV

+0

Единственный способ, с которым файл .html разговаривает с .gs-файлом, - через google.script.run. Или вы можете открыть html в режиме шаблона (см. Документацию), который позволит вам вставить код .gs в html-код. –

Смежные вопросы