Web App如何在功能后更新表

时间:2019-04-22 17:04:38

标签: google-apps-script web-applications

好的,所以我在我的Web应用程序上取得了一些进展,我最初使用以下方法获取表信息:

google.script.run.withSuccessHandler(buildTable).getTable();

该功能是

 function buildTable(myTable) {
    document.getElementById('table_id').innerHTML = myTable;
  }

但是我还有另一个函数可以更改表中的值(可以正常工作),但是不会重新运行装入表功能

<input type ="button" id="slideL" value="Advance" onclick ="google.script.run.logicAdvance(3).withSuccessHandler(updateOutput)"/>

调用逻辑成功前进(值更改),但根本不更新update

function updateOutput(){
Logger.log("Update Output"+info);
document.getElementById('table_id').style.display ='block';
document.getElementById('ask').style.display = "none";
    google.script.run.withSuccessHandler(buildTable).getTable();

}

有什么想法吗?

更新:好的,我放弃了记录器调用,并添加了一个错误1,该错误似乎也没有运行。当前版本的代码。

function updateOutput(result){
document.getElementById('ask').innerHTML = result.displayInfo;
document.getElementById('table_id').style.display ='block';
document.getElementById('ask').style.display = "none";
    google.script.run.withSuccessHandler(buildTable).getTable();


}
function errorFunction (e){
document.getElementById('ask').innerHTML = e;

}

  <div id="ask" style="display:block">Do you want to proceed with this idea?
      <div id="choiceBox">
          <input type ="button" id="slideL" value="Advance" onclick ="google.script.run.logicAdvance(3).withSuccessHandler(updateOutput).withFailureHandler(errorFunction)"/>
          <input type ="button" id="declineButton" value="Decline" onclick ="finish()"/>
      </div>
  </div>

结果是,此操作不执行任何操作,成功函数和失败函数都不会更新“询问”文本的内容。不知何故,我们正在徘徊在后端的荒野中,而不回来了?

这两个函数都在起作用,只是不返回,我不认为吗?

function logicAdvance(row){

  var scriptProperties = PropertiesService.getScriptProperties();
  scriptProperties.setProperty('row', row);
  var status = ss.getRange(row,9).getValue();
  var myObj ={displayValue : "none"};  

  if (status == 1){myObj.displayValue= "block"; return myObj;}
  if (status == 4){myObj.displayValue= "block"; return myObj;}

  advanceStatus(row);
  return myObj;}

//- This function changes the status of the object
function advanceStatus(row){

  var sh = SpreadsheetApp.openById('xx');
  var ss = sh.getSheetByName("Form Responses 1");
  var status = ss.getRange(row, 9);
  var newStatus = parseInt(status.getValue()) +  1;
  if (newStatus == 20) return;
  if (newStatus == 9) return;
  status.setValue(newStatus);
  return;

2 个答案:

答案 0 :(得分:1)

html中没有Loggerinfo似乎也没有定义。 请改用console.info()

答案 1 :(得分:0)

我向后调用了命令:

      <input type ="button" id="slideL" value="Advance" onclick ="google.script.run
.withSuccessHandler(updateOutput)
.withFailureHandler(errorFunction)
.logicAdvance(3)"/>

解决它!