好的,所以我在我的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;
答案 0 :(得分:1)
html中没有Logger
。 info
似乎也没有定义。
请改用console.info()
。
答案 1 :(得分:0)
我向后调用了命令:
<input type ="button" id="slideL" value="Advance" onclick ="google.script.run
.withSuccessHandler(updateOutput)
.withFailureHandler(errorFunction)
.logicAdvance(3)"/>
解决它!