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

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

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

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2556閲覧

htmlとGSの値の単純なやりとり(2019年4月)

dendenmushi

総合スコア98

Google Apps Script

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

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2019/04/26 03:39

編集2019/04/26 06:42

前提・実現したいこと

GAS(google apps scripts)でWEBアプリを作っているのですが、htmlから入力値を.gsファイルに渡し、そのメソッド実行後のリターン値をhtmlに表示したいです。

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

イメージ説明
htmlにて入力したものをgs側にあるメソッドに引数として渡して、そのメソッドのリターン値をhtml側に返して表示クリックしても入力した文字がhtmlに表示されない。

該当のソースコード

GS

1//htmlを表示 2function doGet() { 3 return HtmlService.createTemplateFromFile("UserForm").evaluate(); 4} 5//htmlから値を受け取り 6function test9(hikisuu) { 7 kekka = hikisuu + "tuika" 8 return kekka; 9}

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <base target="_top"> 5</head> 6<body> 7 <input type="text" id="testtext_id3" > 8 <button type="submit" onclick="method_desu()">クリック</button> 9 <div id="TEST"></div>//ここにGSにあるメソッドリターン値を表示したい 10 11<script type="text/javascript" > 12 13function method_desu(){ 14 var testtext3 = document.getElementById('testtext_id3').value; 15 google.script.run.withSuccessHandler(result).test9(testtext3); 16 function result(data){ 17   document.getElementById(TEST).innerHTML = data; 18 } 19} 20 21</script> 22</body> 23</html>

問題点・試してみたこと

切り分けて実装してみたところ、gsへ値わたしをしなく、gsのメソッドのみを行い、そのreturnだけを返すことを試しましたが、そのメソッドじたいが実行できていませんでした。他のアプローチ方法もあるかと思うのですが、もっとも簡単な方法がこのやり方だと考えております。
このやり方として何がおかしくデータやりとりができないのか疑問でなりません。どなたかアドバイスよろしくお願い致します。

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

win10
firefox
[参考サイト]ITサラリーマン日記

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

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

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

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

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

guest

回答2

0

ベストアンサー

スクリプト全体としては動作すると思われます。そこで、明確な修正ポイントではないので恐縮ですが、念のため下記をご確認ください。

  1. document.getElementById(“TEST”).innerHTML = data;“TEST”で使われているダブルコーテーションを"TEST"に変更してください。

  2. 質問内のスクリプトから、Web Appsとしてデプロイしているように思われます。この場合、スクリプトを修正した際は新たなバージョンとしてデプロイしなおした後、あるいは「最新のコード」でテストとして実行してください。これにより最新のスクリプトが反映されます。

  3. return HtmlService.createTemplateFromFile("UserForm").evaluate()UserFormが使用したいHTMLのファイル名であるかどうかご確認ください。

投稿2019/04/26 05:05

kisojin

総合スコア899

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

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

dendenmushi

2019/04/26 06:43 編集

すいません今回答気付きました。先ほど試したところうまくいきました。原因は上の方の回答とkisojinさんの1番が原因でした。文字が小さく気づけませんでした。ありがとうございました。
kisojin

2019/05/02 06:18

ご返事ありがとうございます。無事解決したとのこと。安心しました。
guest

0

var data = google.script.run.withSuccessHandler(result).test9(testtext3);
で出ませんか?

投稿2019/04/26 05:56

hiroshi0240

総合スコア640

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

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

dendenmushi

2019/04/26 06:42 編集

下の方の回答と合わせてhiroshi0240さんの言う通りvar dataが抜けておりました。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問