2016-11-27 67 views
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 = $( '#測試')值。」只留下展示,以幫助解釋我在找什麼 - 不能聲明客戶端和使用服務器端。

回答

1

這應該工作:

var i=document.getElementById('test').value 
+0

當然,我第一次真正使用jquery,有不會與它起作用的部分...感謝utphx!現在完美工作並更新我的代碼。 – ZeroWolfCode

+0

樂於幫忙,歡迎來到Stack Overflow。如果此答案或任何其他人解決了您的問題,請點擊上面的複選標記將其標記爲已接受。 – utphx

相關問題