как перенести значение текстового поля из приложения-изобретателя в веб-приложение Google Sheet - PullRequest
0 голосов
/ 02 августа 2020

Я создал веб-приложение Google, когда я набираю число в текстовом поле заказов, я получаю результат совпадения в текстовом поле с отключенной суммой из столбца таблицы Google, веб-приложение работает нормально

теперь, что я хочу сделать, так это иметь возможность создать текстовое поле в приложении изобретателя, и когда я помещу значение заказов и нажав кнопку, я получу результат суммы на этикетке в интерфейсе приложения invenotr

он не работает над изобретателем приложения

вот код, который я сделал в изобретателе приложения [! [введите описание изображения здесь] [1]] [1]

это Code.gs

function doGet(e) {
  
return HtmlService.createHtmlOutputFromFile('page');

}



function getCost(oneCode){
  var url = "https://script.google.com/macros/s/AKfycbyX";
  va
  return "not found";
}
<!DOCTYPE html>
<html>

<head>
  <base target="_top">
</head>
<script>
  document.addEventListener("DOMContentLoaded", function() {
    document.getElementById("one").addEventListener("change", doThis);
  });

  function doThis() {
    var oneCode = document.getElementById("one").value;
    google.script.run.withSuccessHandler(updateAmount).getCost(oneCode);
  }

  function updateAmount(cost) {
    document.getElementById("two").value = cost;
  }
</script>

<body>
  <div>
    <input id="one" type="text">
    <label for="one">orders</label>
  </div>
  <div>
    <input disabled id="two" type="text">
    <label for="two">amount</label>
  </div>
</body>

</html>

we app

лист Google

1 Ответ

0 голосов
/ 02 августа 2020

Попробуйте это:

function doThis() {
    var oneCode = document.getElementById("one").value;
    console.log(oneCode);
    google.script.run.withSuccessHandler(updateAmount).getCost(oneCode);
  }

и это:

function getCost(oneCode){
  console.log('onecode');
  var url = "https://script.google.com/macros/s/AKfycbyXX6axO9G9ANDW0LaQVgezT6hSzSld8CRt2VbsZV6v8XXwNus/exec";
  var ss = SpreadsheetApp.openByUrl(url);
  var ws = ss.getSheetByName("Sheet1");
  var data = ws.getRange(1,1,ws.getLastRow(),2).getValues();
  var ordersList = data.map(function(r){ return r[0].toString(); });
  var amountList = data.map(function(r){ return r[1].toString(); });
  var position = ordersList.indexOf(oneCode);
  if(position > -1){
    return amountList[position];
  }
  return "not found";
}

А затем запустите код и перейдите к View / Executions и посмотрите, где вы теряете данные.

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