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

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

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

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

HTML

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

Q&A

解決済

1回答

6243閲覧

GAS doGet関数の複数パラメータ処理

TD0

総合スコア22

Google Apps Script

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

HTML

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

0グッド

0クリップ

投稿2018/11/02 02:39

お世話になっております。
パラメータで与えられた乱数をスプレッドシートで検索し、
該当する情報をHTMLに返そうとしています。

HTMLはpageにパラメータを与え、indexを入れます。
その先のパラメータIDに乱数を入れたく、
例えば
/dev?answer=index?ID=3PYrrp5dと入力します。

htmlを開くことはできるのですが、複数のパラメーター処理がうまくいきません。
どのように変更できますでしょうか?
よろしくお願いいたします。

gas

1function doGet(e) { 2 return HtmlService.createTemplateFromFile(e.parameter.page).evaluate(); 3} 4 5function input_value_first(){ 6 var ID = e.parameter.ID 7 var key = ID ; //検索キーワード指定 8 var col = "D"; //検索する列指定 9 var sh = SpreadsheetApp.getActive().getSheetByName('登録者情報'); 10 var row = get_row_first(key, col, sh); 11 var info = sh.getRange(row,1,1,3); 12 var valuess = info.getValues(); 13 sh.getRange(row, 5).setValue("済") 14 return(valuess); 15} 16 17function get_row_first(key, col, sh){ 18 var array = get_array_first(sh, col); 19 var row = array.indexOf(key) + 1; 20 return row; 21} 22 23function get_array_first(sh, col) { 24 var last_row = sh.getLastRow(); 25 var range = sh.getRange(col + "1:" + col + last_row) 26 var values = range.getValues(); 27 var array = []; 28 for(var i = 0; i < values.length; i++){ 29 array.push(values[i][0]); 30 } 31 return array; 32}

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

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

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

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

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

guest

回答1

0

ベストアンサー

テンプレートが提示されていないので、雰囲気で書くと

javascript

1function doGet(e) { 2 var template = HtmlService.createTemplateFromFile(e.parameter.page); 3 //そのページのファイルのIDを出したいところに、"<?= ID ?>"というのが埋めてある前提 4 template.ID = input_value_first(e.parameter.ID); 5 return template.evaluate(); 6} 7function input_value_first(key /* 検索する列指定 */){ 8// var ID = e.parameter.ID;//これはやめましょう。 9// var key = ID ; //検索キーワード指定//これはやめましょう。無駄なことはしない 10 var col = "D"; //検索する列指定 11 var sh = SpreadsheetApp.getActive().getSheetByName('登録者情報'); 12 var row = get_row_first(key, col, sh); 13 var info = sh.getRange(row,1,1,3); 14 var valuess = info.getValues(); 15 sh.getRange(row, 5).setValue("済") 16 return(valuess); 17}

投稿2018/11/02 03:06

編集2018/11/02 03:09
papinianus

総合スコア12705

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

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

papinianus

2018/11/02 03:13

ちなみに前の質問と構成がかわっているようなんですが、何か追加の要件がでたならこちらに、使い勝手の悪いところがあるなら前質問に、何からしら追記して欲しいです。 ここはQAを共有するからこそ回答を得ることに料金はないので、メリット・デメリットを共有していただかないと。 とりたてて、悪い点も良い点もないとしても最低でもこちらはこうやってみたらできるか好奇心から、くらいの理由はあるはず。
TD0

2018/11/02 14:09

お返事遅くなりました。 まずは返答ありがとうございます。改善点等もわかりやすく指摘いただき、大変参考になりました。 まだやり始めて3日ほどの身でして、 プログラミングを学ぶ過程として一般的かわかりませんが、 あるステップがプログラミングとして機能したら、次のステップに手を加えていくようにしています。 (それが今回のパラメータ処理でした) これからもトンチンカンな質問でお騒がせするかと思いますが、 terateilの趣旨として健全な投稿の形を含め、今後ともご指導よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問