前提・実現したいこと
GAS, Javascript, HTML初心者です.
GAS,HTMLservice, Google sheetsを用いて店舗間の在庫共有システムを作っています.
HTMLで作成したフォームからgoogle.script.runでGAS関数を動かします.
URLのパラメータとして店舗IDを受け渡そうとしています.
発生している問題・エラーメッセージ
URLのパラメータの受け渡し方法がわかりません.
doGet(e)でのURLパラメータ取り出しはできるのですが,自身で定義してHTMLから呼び出す関数
(下記のcustomer_input関数)でURLパラメータを取得する方法が知りたいです.
該当のソースコード
Code.gs
var ss_id = 'スプレッドシートのID'; function doGet(e) { return HtmlService.createTemplateFromFile("customer").evaluate(); } function customer_input(lastname, firstname, sex, tel, bday, email, adress) { var sh_name = '顧客情報'; var sh = SpreadsheetApp.openById(ss_id).getSheetByName(sh_name); var lastrow = sh.getLastRow(); sh.appendRow([lastrow, lastname, firstname, sex, tel, bday, email, adress, new Date()]); return "顧客情報を入力しました"; }
customer.html
<!DOCTYPE html> <html> <head> Customer data<br> </head> <body> <label>last name</label><input type="text" id="lastname"><br> <label>first name</label><input type="text" id="firstname"><br> <select id="sex"> <option value="MALE">男性</option> <option value="FEMALE">女性</option> </select><br> <label>TEL</label><input type="text" id="tel"><br> <label>Birthday</label><input type="date" id="bday"><br> <label>E-mail</label><input type="text" id="email"><br> <label>Adress</label><input type="text" id="adress"><br> <button id="submit">submit</button> <script> document.getElementById("submit").onclick = input_to_sheet; function input_to_sheet() { var lastname = document.getElementById("lastname").value; var firstname = document.getElementById("firstname").value; var sex = document.getElementById("sex").value; var tel = document.getElementById("tel").value; var bday = document.getElementById("bday").value; var email = document.getElementById("email").value; var adress = document.getElementById("adress").value; google.script.run .withFailureHandler(onFailure) .withSuccessHandler(onSuccess) .customer_input(lastname, firstname, sex, tel, bday, email, adress); } function onSuccess(result) { alert(result); } function onFailure(e) { alert([e.message, e.stack]); } </script> </body> </html>
試したこと
doPost関数を用いて引数eからパラメータ取得する方法も試したのですが,htmlファイルを複数作成してdoGet関数でパラメータに応じて異なるhtmlページを返す,としており,オリジナルの関数でシート操作をする必要があったため,doPost関数を使わない方法を探しています.
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/23 04:10
2019/10/25 02:21