前提
GAS(Google Apps Script)を使用して簡易的なサイトを作成している初心者です。
htmlからフォームをGAS側に送信(submit)した際に特定の値がundefinedで戻ってきてしまており、それの解決策を探しています。
※特定の値についてはこの後説明致します。
現状
//////サイトの流れを軽く記します//////
GASのURLを踏む(doGet起動)
↓
URLから値を取り出し、html内の<?=testmessage ?>に埋め込む。
(URLから取り出した値は区別のため今後"値A"と呼びます)
JavaScript
1function doGet(e){ 2 const htmlOutput = HtmlService.createTemplateFromFile("index"); 3 htmlOutput.testmessage = e.parameter.row; 4 return htmlOutput.evaluate(); 5}
html
1<form class="" action="https://script.google.com/macros/s/・・・/exec" method="post"> 2 <div id="header"> 3 <h1>テスト</h1> 4 <span class="other">購入個数</span><br> 5 <textarea name="name" rows="1" cols="20"></textarea> 6 </div> 7 <h2><?=testmessage ?></h2> 8 <div class="form-submit"> 9 <input type="submit" name="" value="送信する"> 10 </div> 11</form>
↓
htmlをHtmlOutputオブジェクトにしてreturn(ブラウザ表示へ)
↓
ブラウザに表示後、入力フォームに入力された値と共に値Aを送信(GASに帰還)。
↓
doPostで受け取り、"e.parameters.変数名"で値をそれぞれ抜き出す。
抜き出した値はスプレッドシートに書き込む。この際、値Aのみ"undefined"で戻ってきてしまう。
入力フォームの値はスプレッドシートに書き込めていることを確認済み。
まとめますと、「URL内に含まれた値をdoGetからhtmlを通ってdoPostまで持って行きたい」ということになります。
発生している問題
エラーが発生しているわけではないのですが、値を無事に持ち出すことが出来ていません。
途中のブラウザ表示の際は、値Aを表示することが出来ています。
URLから値を抜き出したい理由としては、URL内に内包した値(ID)を用いてスプレッドシートに入力フォームの値を入れたいからです。
シート内にIDが記載されていなかったら記載し、IDの右に入力フォームの値を入れる等。(下図参照)
ID | |||
---|---|---|---|
Yda1H | 8 | 4 | 11 |
vRs54G | 3 | 14 | 1 |
試したこと
調べ方が甘いのかもしれませんが、この問題を解決できそうなものは見つかりませんでした。
補足情報(FW/ツールのバージョンなど)
使用したのはGASです。
以上の問題を解決、もしくは代替案等の知識等がある方がいましたら、お教え頂けると幸いです。