2015-10-07 1 views
0

Это ЧАСТИЧНЫЙ файл скриптов Google.Как взять пользовательские входы из текстового поля и сделать их переменными в скрипте Google?

Code.gs

CriteriaColumn, Choice1, Destination1, Choice2, Destination2 должно быть все, что пользователь ввел в HTML текстовое поле.

if (colIndex == CriteriaColumn && rowIndex != 1) { 

Получить значение из столбца CriteriaColumn, в активной строке.

if (status == Choice1) { 

Целевой лист обозначается как Назначение1.

 var targetSheet = ss.getSheetByName(Destination1); 
    } 
    else if (status == Choice2) { 

Целевой лист - это любой пункт назначения2.

 var targetSheet = ss.getSheetByName(Destination2); 
    } 

Это HTML-файл. Все, что вводится в текстовые поля, должно стать переменным в скрипте Google.

index.html

<!DOCTYPE html> 
<html> 
    <head> 
    <base target="_top"> 
    </head> 
    <body> 

текстовые поля ниже вводятся пользователем. Они должны стать переменными в скрипте Google.

<p>What is the criteria column? Use a number, not a letter. ie. A=1....Z=26<input type="text" name="CriteriaColumn"/></p> 
    <p>Choice 1<input type="text" name="Choice1"/></p> 
    <p>Choice 2<input type="text" name="Choice2"/></p> 
    <p>Destination 1<input type="text" name="Destination1"/></p> 
    <p>Destination 2<input type="text" name="Destination2"/></p> 

Нажатие на сохранение сохранит их настройки и применит их к соответствующим переменным в скрипте Google.

<p><input type="button" value="Save" onclick="google.script.host.close()" /></p> 

    </body> 
</html> 

ответ

0

Вы можете создать форму в своем html. Затем вы должны поместить свои теги ввода в эту форму и отправить форму в вашу скриптовую программу приложений.

Here вы можете проверить пример того, как это сделать. В этом примере использовался входной файл, но он был бы похож на ваши теги ввода.

<body> 
<form> 
    <p>What is the criteria column? Use a number, not a letter. ie. A=1....Z=26<input type="text" name="CriteriaColumn"/></p> 
    <p>Choice 1<input type="text" name="Choice1"/></p> 
    <p>Choice 2<input type="text" name="Choice2"/></p> 
    <p>Destination 1<input type="text" name="Destination1"/></p> 
    <p>Destination 2<input type="text" name="Destination2"/></p> 

    <input type="button" value="Save" onclick="google.script.run.processForm(this.parentNode)" /> 
</form> 
</body> 

«processForm» это имя функции в файле GS, так что вы должны изменить его на имя вашей функции.

Параметр «this.parentNode» делает ссылку на родителя кнопки, которая в этом случае является формой.

Функция «withSuccessHandler» выполнит функцию javascript (код javascript в вашем html), который вы укажете в качестве параметра. В этом примере функция «updateUrl».

+0

Спасибо за ваш ответ. Как назначить Choice1, Choice2 и т. Д. Как переменные в моем gs-файле? – FlappyBird

0

Создать форму в вашем HTML:

<form> 
    <p>What is the criteria column? Use a number, not a letter. ie. A=1....Z=26<input type="text" name="CriteriaColumn"/></p> 
    <p>Choice 1<input type="text" name="Choice1"/></p> 
    <p>Choice 2<input type="text" name="Choice2"/></p> 
    <p>Destination 1<input type="text" name="Destination1"/></p> 
    <p>Destination 2<input type="text" name="Destination2"/></p> 
    <input type="submit" value="Save" onclick="google.script.run.withSuccessHandler(google.script.host.close())processForm(this.parentNode)" /> 
</form> 

Затем в файл Google Apps Script, вы обрабатываете форму, как это объект.Имя каждого значения будет равно имя, которое вы назначили его в HTML:

function processForm(form) { 
    var destination1 = form.Destination1; 
    var destination2 = form.Destination2; 
    //etc...... 
    //do other things with your variables 
} 

Важно помнить, что переменная сфера будет применяться, так что ваши значения формы будут доступны для просмотра только для вашей processForm() функции, если только вам передайте их другой функции.

Обычно я закрываю свои processForm() функциями с помощью return 200, чтобы обработчик успеха активировал и закрыл пользовательский интерфейс. Я не знаю, нужно ли это или нет, но он работает, и у меня меньше проблем с закрытием пользовательских интерфейсов таким образом.

Для получения дополнительной информации см ссылки API Google на client-to-server communication

+0

Как сохранить переменные из формы? По сути, я пытаюсь позволить конечному пользователю изменить значение переменной. – FlappyBird

+0

Во втором фрагменте кода выше ваш скрипт получает форму из вашего пользовательского интерфейса. Вы получаете доступ к атрибутам формы, используя те же имена, которые вы дали им в своем HTML (то есть в вашем файле сценария, вы получите доступ к текстовому полю с именем «Destination1» в своем скрипте, вызвав 'form.Destination1'. назначьте свою переменную в своем скрипте. Если вы хотите, чтобы эти значения сохранялись между обычными способами, вам нужно изучить [свойства скрипта] (https://developers.google.com/apps-script/guides/properties). помогите уточнить? – Silinus

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