【发布时间】:2013-05-09 03:34:11
【问题描述】:
我正在使用 GAS HTMLService 来设计一个 Web 应用程序并且遇到了一个我似乎无法克服的主要障碍 - 所以我希望得到你们的帮助。
我能够使用标准 doGet 创建模板并正确显示 HTML:
function doGet(e){
var ss = SpreadsheetApp.openById('SpreadSheetKey');
var usersheet = ss.getSheetByName('UserInfo');
var lastRow = usersheet.getLastRow();
var Userrange = usersheet.getRange(2, 1, lastRow-1, 4);
var Uservalues = Userrange.getValues();
var length = Uservalues.length;
var template = HtmlService.createTemplateFromFile('Form.html');
template.stuff = {};
template.stuff = Uservalues;
template.action = ScriptApp.getService().getUrl();
return template.evaluate();
}
只要我从我的 HTML 文件中删除这段代码,HTML 就会很好地呈现:
$('#chkP').click(function(){
var email = '<?=email?>';
var usename = $('#myuserName').val();
for(var i=0;i<num;i++){
var name = '<?!=stuff[i][0]?>';
alert(name);
}
});
这个问题似乎与尝试使用“i”变量有关——我可以使用以下方法获得正确的信息:
'<?=stuff[2][0]?>' // THIS WORKS
<?=stuff[i][0]?> //THIS DOES NOT -- IT IS ALWAYS undefined
// it's like 'i' and <?stuff?> aren't in the same scope??
所以我有一个服务器端数组的理论:
(Spreadsheetapp.blahblah.getValues();)
客户端无法使用。
我的问题是如何将电子表格中的这些数据放入 HTML 表单中,并使用简单的“for”循环作为数组进行迭代......
或者有更好的方法吗?
【问题讨论】:
标签: javascript jquery html arrays google-apps-script