私はgooglescriptをあまり使用していないので、これはうまくいけば簡単な質問です。しかし、私は検索で答えを見つけることができませんでした。カスタムhtmlダイアログからデータを取得
私は、チェックボックス付きのダイアログボックスを開き、何とかチェックが入ってしまった箱を返す私のGoogleスプレッドシートに新しいボタンを追加するスクリプトを持っていると思います。
編集:目標は、チェックボックスを他のシートの名前をリスト、メッセージボックスが表示されるように、選択した名前のリストを返すことです。今
createGraph(エージェント)に記録された値がNULLであるため、HTMLスクリプトの中で何かが間違っているようです。ここで
は私の更新されたスクリプト(:不要な部分をカット編集):ある
function openMsgBox() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var pages = ss.getSheets();
var names = [];
for(var i = 0; i < pages.length; i++){
var name = pages[i].getName();
if(name != 'Template'){
names.push(name);
}
}
if(names.length == 0){
Browser.msgBox('Error', 'no pages exist', Browser.Buttons.OK);
return;
}
var template = HtmlService.createTemplateFromFile('MyHTMLFile');
template.data = names;
var html = template.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setWidth(400).setHeight(20*names.length + 100);
SpreadsheetApp.getUi().showModalDialog(html, 'title');
}
function createGraph(agents) {
Logger.log(agents);
}
そして、これは、更新されたHTMLダイアログボックスです:あなたはこれがいかにすべての手掛かりを持っている場合は
<div id="container">
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/cupertino/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<fieldset>
<legend>Select the users you want to add</legend>
<div id="agentList">
<?for (var i = 0; i < data.length; i++) { ?>
<b> <input type="checkbox" id="agent<?=i?>" value=<?=data[i]?> /> <?=data[i]?><br /></b>
<? } ?>
<br />
</div>
<input type="button" value="OK" onClick="createGraph()" />
</fieldset>
</div>
<script>
// Pass input to server-side createGraph()
function createGraph() {
var agents;
var nrOfAgents = $("#agentList > div").length;
for(var i = 0; i < nrOfAgents; i++){
if($('agent'+i).is(":checked")){
agents.push($('agent'+i).value);
}
}
google.script.run
.withSuccessHandler(
// input delivered, close dialog
function() {
google.script.host.close();
})
.withFailureHandler(
function() {
var div = $('<div id="error" class="error">' + msg + '</div>');
$(element).after($("#container"));
})
.createGraph(agents);
}
</script>
あなたは私に教えてもらうために自由に感じることができます。私が言ったように、私はgooglescriptには新しく、通常javascriptでも入力しません。
あなたは 'google.script.run.myServerFunctionNameHereは()' '.gs'スクリプトファイル内の関数を実行するために使用する必要があります。戻り値を返すには、 '.withSuccessHandler(clientFunctionNameToHandleReturn)' [Apps Script Documentation](https://developers.google.com/apps-script/guides/html/reference/run)を使用する必要があります –
ありがとう、私はもはや私のコードにエラーはありません(コンパイラが見つける)。しかし、私はまだ出力、「createGraph(エージェント)」を取得しようとしたときに間違った何かを – Taxen0