我正在撰写Google Apps Scripts网络应用程序(带有电子表格)
我想从HTML表单中获取值并在电子表格中设置一个值。
我写了这段代码,但似乎没有用。有没有人知道为什么?
来源 - code.gs
function doGet() {
var output = HtmlService.createTemplateFromFile('test');
return output.evaluate();
}
function getMsgs(){
var db = ScriptDb.getMyDb();
var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
return result;
}
function processForm(form){
var db = ScriptDb.getMyDb();
var n = db.query({type:'msgdata'}).getSize();
var obj = {type:'msgdata',msg:form.text1,num:n};
db.save(obj);
var result = db.query({type:'msgdata'}).sortBy('num', db.DESCENDING, db.NUMERIC);
var str = "";
while(result.hasNext()){
str = str + '<li>' + result.next().msg + '</li>';
}
var sheet = SpreadsheetApp.getActiveSheet();
var result = db.query({type:"msgdata"});
var i = 2;
while(result.hasNext()){
var data = result.next();
sheet.getRange(i,2).setValue(data.msg);
i++;
}
return str;
}
来源 - test.html
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html; charset=utf-8">
<title>Sample jsp</title>
<style>
h1 {font-size:16pt; background:#AAFFAA;padding:5px;}
p {margin:10px;}
</style>
<script>
function onSuccess(res){
var list = document.getElementById("list");
list.innerHTML = res;
}
</script>
</head>
<body>
<h1>Sample jsp page</h1>
<form id='myForm' onsubmit="javascript:return false;">
<input type='text' name='text1'>
<input type='button' value='click' onclick='google.script.run.withSuccessHandler(onSuccess).processForm(this.parentNode)'>
</form>
<hr>
<ul id="list">
<?
var res = getMsgs();
while(res.hasNext()){
output.append('<li>' + res.next().msg + '</li>');
}
?>
</ul>
</body>
</html>
答案 0 :(得分:0)