質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

7148閲覧

gasでHTML→HTMLで遷移させる際に変数の受け渡しをしたい

kimi0555

総合スコア12

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2018/09/05 02:11

前提・実現したいこと

gas で作成したHTML内のフォームから受け取った
パラメータを同プロジェクト内の別ページのHTMLに値を渡したいです

発生している問題・エラーメッセージ

ReferenceError: 「data」が定義されていません。(行 17、ファイル「コード」)

該当のソースコード

1ページ目

<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <form method="post" action="https://script.google.com/a/c-kel.com/macros/s/AKfycbz6StCjCFfa5WMhDG_Tg8IYzrl5EFEMeocLwlkfz0w/dev?=page2"> <label>名前<input type="text" name="name"></label> <label>性別<input type="text" name="sex"></label> <input type="submit" value="送信"> </form> </body> </html>

2ページ目

<!DOCTYPE html> <html> <head> <base target="_top"> </head> <body> <? var data = getData();?> <p><?= data ?></p> </body> </html>

gasコード
function doGet() {

return HtmlService.createTemplateFromFile('page1').evaluate();

}

function doPost(e) {
var name =e.parameter.name;
var sex =e.parameter.sex;

return HtmlService.createTemplateFromFile('page2').evaluate();

 return name;
}

function data(){

var test = doPost(name);
Logger.log(test);
return test;

}

試したこと

evalute().append(array)
で渡す事はできましたが、あくまで変数として受け取って
できれば2ページ目を確認用ページとして利用したいのです。
スプレッドシートを途中に挟さむやり方はできたのですが
HTML→gas→HTMLがうまくいかず;;

どなたかお救いいただければ幸いです

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

もしかしたらあなたのやりたいこととは少し違うかもしれませんが、html→gsへのデータの送信をしたいという観点から僭越ながら回答させていただきます。htmlの中で<script></script>を追加し

  • GAS(.gs)
  • HTML(.html)
  • JavaScript(HTMLの中)

の三種類を用意します。あとはHTMLの中のJSからGASの関数を実行するだけでOKです。

JS

1// HTML側 2 function goToNext() { 3 google.script.run 4 .withSuccessHandler(function(result) { 5 // 成功 6 // resultとしてHTMLが返されます。 7 }) 8 .withFailureHandler(function(result) { 9 // 失敗 10 }).gotoSecondPages(/*渡したいデータ*/); 11 }

JS:code.gs

1// GAS側 2 function gotoSecondPages(data) { 3 var template = HtmlService.createTemplateFromFile("page2"); 4 template.data/*html内でdataとして使うことができます。*/ = data; 5 return template.evaluate().getContent(); // dataを埋め込んだHTMLを返します。 6 }

P.S. 2ページ目の<? var data = getData();?>必要なくなります。

誠に恐縮ではございますが、詳しいことは自分の書いた記事を見て頂ければと思います...m(__)m

投稿2020/05/31 05:45

Cyber_Hacnosuke

総合スコア8

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問