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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

HTML

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

1回答

4965閲覧

GASにHTMLからチェックボックスOn/Off情報の配列を渡したい

booboostudy

総合スコア0

Google スプレッドシート

Google スプレッドシートは、フリーで利用できる表計算ソフト。Webアプリのためインターネットに接続することで利用できます。チャートやグラフの作成のほか、シートを他のユーザーと共有したり、同時に作業を進めることも可能です。

Google Apps Script

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

HTML

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/09/02 23:49

編集2020/09/03 00:04

前提・実現したいこと

初心者ですので、表現が間違っているところがあるかもしれません。
基礎もなくネット情報をつまみ食いしながら取り組んでしまっているので、その点ご容赦ください。。。
GASで以下Webアプリを作成しようとしています。

スプレッドシートから項目行をピックアップしてテーブル表示
それぞれの項目行にチェックボックスを設定

ユーザーがチェックした項目に対してのみ、
もとのスプレッドシートの対応項目行の値を変更する

具体的に言うと、20行分データがあるうち、未承認のステータスのもの(例えば10個)をピックアップして表示し、
承認したいものだけ(例えば5個)チェックしてボタンを押すと、スプレッドシート内の未承認が承認に切り替わる

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

submitボタン押下をトリガーとして、チェックボックスのOn/Off状態を配列のようにGAS側に渡す方法が分からない
そもそも渡せるものなんでしょうか?

該当のソースコード

html

1<!----------body部分の抜粋です-----------------> 2 3<!---------------------- テーブル内のチェックボックスを全てOFF/ONする関数とボタン ---------------------> 4<SCRIPT TYPE="text/javascript"> 5var count; 6function BoxChecked(check){ 7 for(count = 0; count < document.approval["OnOff[]"].length; count++){ 8 document.approval["OnOff[]"][count].checked = check; 9 } 10} 11</SCRIPT> 12 13<INPUT TYPE="button" onClick="BoxChecked(true);" VALUE="全て選択"> 14<INPUT TYPE="button" onClick="BoxChecked(false);" VALUE="全て解除"> 15 16 17<!---------------------- 承認ボタン(チェックONのものを承認する形にしたい) ---------------------> 18 <form name = "approval" method="post" action="URL"> 19 <input type="submit" value="承認" > 20 <br> 21 22<!---------------------- スプレッドシートからデータを取得してテーブル出力 ---------------------> 23 <table> 24 <? 25 // スプレッドシートからデータを取得 26 var data = getData(address); 27 // <!-- テーブルの見出し作成 --> 28 // <!---1つでも対象があるかどうかを確認してからテーブル作成---------> 29  if(data[1][0]){ 30 output.append('<tr>'); 31 output.append('<th bgcolor="#ef93b6">承認<br/>チェック</th>'); 32 output.append('<th bgcolor="#ef93b6">' + data[0][0] + '</th>'); 33 output.append('<th bgcolor="#ef93b6">' + data[0][1] + '</th>'); 34 output.append('<th bgcolor="#ef93b6">' + data[0][2] + '</th>'); 35 output.append('</tr>'); 36 37 //テーブルを作成 38 for(var i=1;i<data.length;i++){ 39 output.append('<tr>'); 40 //output.append('<td> <label><input name="item" value="'+i+'" type="checkbox" /> </label></td>'); 41     //テーブル各列最初の項目にチェックボックスを挿入 42 output.append('<td> <input name="OnOff[]" type="checkbox" id="OnOff[]" ></td>'); 43 output.append('<td>' + data[i][0] + '</td>'); 44 output.append('<td>' + data[i][1] + '</td>'); 45 output.append('<td>' + data[i][2] + '</td>'); 46   output.append('</tr>'); 47 } 48 } 49  //<!---1つも対象が無い場合は、その旨を表示---------> 50 else{ 51 ?> <p class = "no-request"> 現在、対象はありません <br></p> <? 52 } 53 ?> 54 55 </table> 56 </form> 57

試したこと

ボタンを押すと、リストアップした全て(10個)の状態が全て切り替わるところまでは作成できています。
イメージとしては、配列OnOff[ 1 0 0 1 0 0 1 1 0 1 ]のような状態で10個のうち上からこの順番で5個ONという情報が渡されて
GAS側で "if(OnOff[j] == 1)"で切り替える事を期待しています

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

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

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

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

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

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

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

guest

回答1

0

document.approval["OnOff[]"]を引数としてGASの関数を呼び出せば実行できます。
例:GASの関数名がcheck(配列)の場合以下のJSで呼び出せます。(returnDataで戻り値を受け取ります。)

JS

1var array = document.approval["OnOff[]"]; 2google.script.run.withSuccessHandler(function(returnData) 3 {呼び出し成功時の処理}).check(array); 4``` 5コード 6```

投稿2020/09/08 02:54

hiroshi0240

総合スコア640

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問