0
修正後的代碼是正確的,並根據utphx的答案功能。 在谷歌的Apps腳本,我有以下的基本代碼:谷歌應用程序腳本推送客戶端變量到服務器
.GS:
function doGet(e) {
var template = HtmlService.createTemplateFromFile('Index');
return template.evaluate()
.setTitle('Web App Window Title')
.setSandboxMode(HtmlService.SandboxMode.IFRAME);
}
function getCellContents() {
var contents = {};
var ns = SpreadsheetApp.openById('1A7HaSpjPyJjUcDuQZXc8TqJ-h0Sb0qoUzoypjF5ePOo');
var nt = ns.getSheetByName('Sheet1');
contents.value = nt.getRange(1, 1).getValue();
return contents;
}
function save(v){
var ns = SpreadsheetApp.openById('%sheetid%');
var nt = ns.getSheetByName('Sheet1');
nt.getRange(1, 1).setValue(v);
}
和.html:
<html>
<body>
<div class='block result-display' id='results'>
</div>
<br />
<button id=add>Save</button>
</body>
</html>
<script src='//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js'></script>
<script>
$(function() {
google.script.run
.withSuccessHandler(function(contents) {
$('#results').append('<input id="test" value="'+contents.value+'"></input>');
})
.getCellContents();
});
$('#add').click(function(){
var i=document.getElementById('test').value;
google.script.run
.withSuccessHandler(function() {
})
.save(i);
});
</script>
.getCellContents正確拉,並顯示我想在一個價值可改變的輸入元素。 我的問題是.save,我希望能夠更改數字,單擊「保存」按鈕並將輸入值保存到電子表格中。 .setValue編輯數據,我只是無法弄清楚如何從服務器訪問輸入的值,以便正確更改數據 - 由於它不識別var i,因此當前僅刪除數據。
*注意, 「%sheetid%」 是問題的佔位符,我使用的是正確的ID在我的文件, 「VAR I = $( '#測試')值。」只留下展示,以幫助解釋我在找什麼 - 不能聲明客戶端和使用服務器端。
當然,我第一次真正使用jquery,有不會與它起作用的部分...感謝utphx!現在完美工作並更新我的代碼。 – ZeroWolfCode
樂於幫忙,歡迎來到Stack Overflow。如果此答案或任何其他人解決了您的問題,請點擊上面的複選標記將其標記爲已接受。 – utphx