Передача массива из HTML-формы в GS - PullRequest
0 голосов
/ 19 марта 2019

Я использую Google App Script.

Я создал выпадающие списки из значений в Google Sheet. Мое намерение состоит в том, чтобы собрать selectedIndex (ы) в массиве, отправить их на сервер в качестве параметров и заставить их выводить значение из того же Google Sheet на основе аргумента.

Я могу успешно передать массив выбранных индексов раскрывающихся списков из HTML-формы в серверную часть (code.gs), но при попытке получить значение ячейки в Google Sheets с помощью getRange & selectedindexes, я всегда получаю эти ошибки:

console.log - не вычисляется при вычислениях CL (код: 22)

Logger.log - может регистрировать значение ячейки, но когда я "возвращаю PTvalue", интерфейс регистрирует его как неопределенное.

Пожалуйста, помогите!

page.html

//gets selected index from dropdown
    var CountryIndex = document.getElementById("menu").selectedIndex;
    var CUTypeIndex = document.getElementById("ListCUTyp").selectedIndex;

//pushes indices into array 
    formArray = [];
    formArray.push(CountryIndex);
    formArray.push(CUTypeIndex);

//array sent to back end within function calculateCL
//on success of calculateCL, run function CLOutput
    google.script.run.withSuccessHandler(CLOutput()).calculateCL(formArray)

//outputs value from GS
    function CLOutput(PTvalue){
                console.log(PTvalue);
                document.getElementById("ListPT").value = PTvalue;
            }

code.gs

//gets value of cell based on selected index array
        function calculateCL(formArray) {
          var PTvalue = sheet.getRange(2+formArray[0], 2+formArray[1]).getValue();
          Logger.log(PTvalue);
          return PTvalue;
        }

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Это неверно:

 google.script.run
.withSuccessHandler(CLOutput())
.calculateCL(formArray);

Это правильная форма:

google.script.run
.withSuccessHandler(CLOutput)
.calculateCL(formArray)

 function CLOutput(PTvalue){
   console.log(PTvalue);
   document.getElementById("ListPT").value = PTvalue;
 }

Это также правильно

 google.script.run
.withSuccessHandler(function(PTValue){
    console.log(PTvalue);
    document.getElementById("ListPT").value = PTvalue;
})
.calculateCL(formArray)
0 голосов
/ 19 марта 2019

У вашего calculateCL есть параметр, но кажется, что вы используете его без параметра внутри.

google.script.run.withSuccessHandler(CLOutput()).`calculateCL()`

Взгляните на свою функцию:

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