Apps Script: добавление поля в форму объекта - PullRequest
0 голосов
/ 27 февраля 2019

enter image description here

У меня есть шаблон скрипта приложения на боковой панели с формой (скриншот).

    <form id="myForm" onsubmit="handleFormSubmit(this)">

           <div id="texts">


    </div>



        <div>
            <label for="optionList">Click me</label>
            <select id="optionList" ondblclick = "addText(event)" name="optionList" size="5">
</select>

        </div>

        <br>



        <br>

        <div>

            <textarea id="message" name="message" rows="10" cols="30"></textarea>

        </div>
        <div id="textboxes"></div>

        <div id="insert"></div>

      <input type="submit" value="Submit" />

    </form>

Когда он создан, он получает ряд данных листов, который выглядит следующим образом:

var jsonRow = <?= row ?>; //PASSED IN JSON

Когда форма отправлена, я понимаю, что создается объект формы, который передается обратнона стороне сервера.Я хотел бы добавить jsonRow к форме объекта, чтобы разрешить обработку на стороне сервера.

Какой лучший способ сделать это?Код для отправки формы ниже:

        function handleFormSubmit(formObject) {
                    console.log('handleFormSubmit')
        console.log(formObject)

        console.log(jsonRow)
            google.script.run.withSuccessHandler(google.script.host.close).processRowPopupHTML(formObject);

        }

1 Ответ

0 голосов
/ 28 февраля 2019
  • Вы хотите получить значения как formObject, так и jsonRow в функции processRowPopupHTML() на стороне ГАЗА.
  • В вашем HTML вы хотите получить значения из SelectElement иTextAreaElement.

Если мое понимание верно, как насчет этой модификации?Я думаю, что есть несколько решений для вашей ситуации.Поэтому, пожалуйста, подумайте об этом как об одном из них.

В этой модификации значения из SelectElement и TextAreaElement извлекаются на стороне Javascript и отправляются как объект на сторону GAS, добавляя jsonRow.

Модифицированный скрипт:

Пожалуйста, измените handleFormSubmit() следующим образом.

function handleFormSubmit(formObject) {
  console.log('handleFormSubmit')
  console.log(formObject)
  console.log(jsonRow)

  // Added this object
  const response = {
    jsonRow: jsonRow,
    formObject: {
      optionList: formObject.optionList.value,
      message: formObject.message.value,
    }
  };

  google.script.run.withSuccessHandler(google.script.host.close).processRowPopupHTML(response);
}

Результат:

Вы можете получить следующий объект с помощью функции processRowPopupHTML() ГАЗАside.

{
  "jsonRow": "### values ###",
  "formObject": {
    "optionList": "### values ###",
    "message": "### values ###"
  }
}

Примечание:

  • Этот модифицированный скрипт предполагает, что в вашем скрипте console.log(jsonRow) правильно показывает значение jsonRow.

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, прошу прощения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...