Mar*_*Nab 3 html javascript arrays jquery google-apps-script
我们出现了问题。我们现在的代码可以工作,但是我们无法让数组返回到 html 页面上。我们从 html 页面发送一个数字,然后 returnData 函数发生。当它运行时,它会经过loopsheetGewoon,然后返回一个数组。将数组返回给returnData,函数以数组的返回结束。
问题是,当我们尝试将数组获取到 html 页面以便我们可以从电子表格中获取单个数据时,它会返回 undefined。我们还尝试将 javascript 值传递给 google apps 脚本代码,但这不起作用。
function loopSheetGewoon(data, studentNr){
var SpreadSheetKeyA = "1h8fDwCUUPHRdmTHu-5gMyqU294ENZxCZcHCNCuN6r_Y";
var sheet1 = SpreadsheetApp.openById(SpreadSheetKeyA).getActiveSheet();
var array = [];
for (var y = 0; y < data.length; ++y ) {
var datum = Utilities.formatDate(data[y][0], "CET", "dd-MM-yyyy hh:mm");
var nummer = data[y][2];
if(studentNr.equals(nummer)){
for (var x = 0; x < 35; x++ ) {
array.push(data[y][x]);
}
return array;
}
}
}
Run Code Online (Sandbox Code Playgroud)
下面是启动的功能。
function returnData(stuNr){
var SpreadSheetKeyA = "1h8fDwCUUPHRdmTHu-5gMyqU294ENZxCZcHCNCuN6r_Y";
var sheet1 = SpreadsheetApp.openById(SpreadSheetKeyA).getActiveSheet();
var data = sheet1.getDataRange().getValues();
var array = [];
array = loopSheetGewoon(data, stuNr);
Logger.log(array);
return array;
}
Run Code Online (Sandbox Code Playgroud)
下面是我们从 html 页面运行的函数。单击按钮时,它会向 returnData 函数发送一个数字(它存储为字符串值)。它现在应该用数组填充变量 d,但它一直返回未定义。
$("#oph").click(function ophalen(){
var s = $("#nummer").val();
var displayEl = document.getElementById("nummer");
var d = [];
alert(s);
d = google.script.run.returnData(s);
//for( var y = 0; y < d.length(); ++y){
//var naam = data[y][1];
//var studentnr = data[y][2];
//var document = data[y][32];
//}
alert(d);
var div = document.getElementById('block');
div.innerHTML = naam;
});
Run Code Online (Sandbox Code Playgroud)
所以我不确定我们做错了什么,因为函数本身工作正常,直到它返回到 html 页面为止。
小智 7
不幸的是,记录在案的 google.script.run 限制之一(截至 2019 年 3 月仍然有效)是您无法以任何方式传递 Date 对象,包括作为数组的一部分。
您可以在某个范围上调用 getDisplayValues() 而不是 getValues() 来仅获取字符串数组,也可以通过处理 getValues() 数组将 Date 对象转换为字符串。
归档时间: |
|
查看次数: |
4659 次 |
最近记录: |