2017-07-21 1 views
2

私はこのようなコードを持っています。あなたはこのコードを見ることができるようGoogle Scriptletでjavascript変数を渡すにはどうすればいいですか?

<script> 
function loadmainTBL(){ 
<? var data = SpreadsheetApp 
    .getActiveSpreadsheet().getSheetByName("Customer Logs Information Database") 
    .getDataRange() 
    .getValues(); ?> 
var number = 6 

<?for (var i = 12; i < data.length; i++) { ?> 
<? if (data[i][0] == "I want to put it here") { ?> 
var tableHeaderRowCount = 1; 
var table = document.getElementById('TableContainer'); 
var rowCount = table.rows.length; 
for (var i = tableHeaderRowCount; i < rowCount; i++) { 
    table.deleteRow(tableHeaderRowCount); 
} 
<?}?> 
<?}?> 
} 
</script> 

は、HTMLファイル内にあり、それはjavascriptので構成されており、Googleは私の質問はこれでスクリプトレット。どうすればこれを渡すことができますか?

var number = 6 

ここには?

<? if (data[i][0] == "I want to put it here") { ?> 

ここはhtmlコードです。

<? var data = SpreadsheetApp 
    .getActiveSpreadsheet().getSheetByName("Customer Logs Information Database") 
    .getDataRange() 
    .getValues(); ?> 

<table id = "TableContainer" cellspacing="2" cellpadding="3" width ="100%" align = "center" class="hoverTable"> 
    <th bgcolor = "darkgreen"><font color="white">#</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Area</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Customer Name</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Person In Charge</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Remarks</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Status</font></th> 
    <th bgcolor = "darkgreen"><font color="white">Doc. Date</font></th> 
    <th bgcolor = "darkgreen"></th> 
    <? for (var i = 12; i < data.length; i++) { ?> 
    <tr> 
    <td class="dataid"><?= data[i][0] ?></td> 
    <td class="area"><?= data[i][1] ?></td> 
    <td class="cusname"><?= data[i][2] ?></td> 
    <td class="cic" width = "200px"><?= data[i][3] ?></td> 
    <td class="remarks" ><?= data[i][4] ?></td> 
    <td class="status" width = "70px"><?= data[i][5] ?></td> 
    <td class="docdate"><?= data[i][6] ?></td> 
    <td ><img class="click-to-select" src="https://docs.google.com/uc?id=0By6kUPbaVMWCbUI0LTJTR2g2N3M" alt="Submit" width="13px" height="13px" title = "Edit Selected Data" data-toggle="modal" data-target="#myModal"/> 
    </td> 
    <? } ?> 
    </tr> 
</table> 

将来のヘルプのためのtysm。何か前code.gsで

+0

code.gsで数値を宣言するか、code.gsで上記の関数を書いてgoogle.script.run.withSuccessHandler(fnName)で呼び出す方が良いでしょう.loadmainTBL() – Ritz

+0

あなたはそれを言うでしょう。私はほぼ半日は私のために働いていないように見えた。私にそれを実演してもらえますか?私のコード –

+0

もご希望の場合はご利用ください。テーブルを置き換える場所にhtmlを貼り付けます。 –

答えて

0

、次のように配置します。

//Define this here globally so it is accessed in the HTML Template 
var passedParameter= ' '; 

あなたが等しい6にこれを定義する、または関数内で前のページを作成するいくつかのコードに基づいて、それを定義することができます。

/**----------------------------------------------------------------------------------- 
| 
| Begin section for app interface 
| 
------------------------------------------------------------------------------------*/ 
// Script-as-app template. 
function doGet(passed) { 

if(passed.parameter.festival && passed.parameter.year){ 

Logger.log(passed.parameter); 
passedParameter = passed.parameter.festival + ' ' + passed.parameter.year; 
} 


    var result=HtmlService.createTemplateFromFile('GridView').evaluate() 
     .setTitle('Boxwood Registrations') 
     .setWidth(1285) 
     .setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL); 

    return result; 

} 

コードの上記2つのセクションは私の全体のコードです:私はそのように私のクライアント側がアクセス権を持つマージして保存した、私の場合、私は、Webアプリケーションとしてこれを展開していますし、URLを経由して2つの変数を渡します.gsファイル。私は私のブラウザでWebアプリケーションを実行すると、私は、WebアプリケーションのURLの最後にこれを追加します。

?festival=myfestival&year=2017 

私のHTMLファイルには、今私がアクセス「myfestival 2017」に等しいpassedParameterという変数へのアクセス権を持っています私のHTML内の関数は:

<script> 
function showMenuYear(menuItems) { 
    var list = $('#optionListYear'); 
    var desiredValue = '<?!= passedParameter ?>'; 

//More code here to use the variable desiredValue 
} 
</script> 

私は価値のためのスプレッドシートを読むと、ユーザーの入力した後、サーバー側からそのように多くの情報を取得する必要がある場合、私はhtmlファイル内の関数でこれを使用します。

<script> 
function setFormList() { 

    var replacement = document.getElementById("OverallGrid"); 
    replacement.innerHTML = "Retrieving Data..."; 

    if ($('#optionListYear').val() === "-1") { 
    replacement.innerHTML = "Select a Festival/Year above."; 
    return; 
    } 


//Run the function getValidRegistrations() which is in a .gs file (server side), passing the value of the element optionListYear. 
    google.script.run.withSuccessHandler(showRegistrationsTable).withFailureHandler(loadFailed).getValidRegistrations($('#optionListYear').val()); 

} 

//If the server side ran succesfully, this is run 
function showRegistrationsTable(returnedItem){ 
    //My code to work with the returned item goes here 
} 

//If the server side failed for some reason an error will be returned 
function loadFailed(returnedError){ 
    //My code to display a error message with the returned item goes here 
} 
</script> 
関連する問題